家族战队|Server里面的函数,你知道多少?,SQL

AVG()
平均值 , 忽略null值 , 字段类型必须为数字型
【家族战队|Server里面的函数,你知道多少?,SQL】Selectavg(score)
Fromdbo.score
SUM()
求和 , 忽略null值 , 字段类型必须为数字型
Selectsum(score)
Fromdbo.score
Min()
最小值 , 忽略null值 , 字段类型为数字型、字符型
Selectmin(score)
Fromdbo.score
Max()
最大值 , 忽略null值 , 字段类型必须为数字型
Selectmax(score)
Fromdbo.score
Count()
项数 , 忽略null值 , 字段类型为整型
Selectcount(score)
Fromdbo.score
Count_big()表示项数在大于2^23-1这个数的时候使用
数据量非常大的时候 , 再用count会显示报错 , 需要用到Count_big()
Len()
指定字符串表达式的字符数 , 不区分中英文 , 其中不包含尾随空格
如果要返回表达式的字节数 , 区分中英文 , 需要用到datalength()函数
Selectlen(score)
Fromdbo.score
随机数产生
用于抽奖 , 需要随机产生数据的情况下使用
在查询分析器中执行:selectrand()
可以随机得到一个小数 , 类型:0.836393773069793
这种随机数在实用过程中使用不多 , 一般使用的是随机整数 。
Selectfloor(rand()*10)到9之间的一个随机整数
Selectceiling(rand()*10)1到10之间的一个随机整数
Floor函数返回小于或等于所给数字表达式的最大整数(向下取整 , 把小数后面的小数直接抹去)
Ceiling函数返回大于或等于所给数字表达式的最小整数(向上取整)
Getdate()Getutcdate()
返回数据库系统当前时间值 , 返回值类型为datetime
Selectgetdate()
返回当前国际标准时间值 , 返回值类型为datetime
Selectgetutcdate()
Convert()函数
把日期转换为新数据类型的通用函数
可以用不同格式显示日期/时间数据
Convert(date_type(length),date_to_be_converted,style)
(要转换成的数据类型 , 要转换的时间值 , 要转换的时间格式样式)
Datediff()函数
返回两个日期之间的天数/月数/小时数等
Datediff(datepart,startdate,enddate)
(计算时间的部分(day、month、year) , 开始时间 , 结束时间)
startdate和enddate参数是合法的日期表达式
Dateadd()函数
在日期中添加或减去指定的时间间隔
Dateadd(datepart,number,date)
Datepart()函数
用于返回日期/时间的单独部分 , 返回类型是一个int型
(获取的部分 , 时间值)
Datename()同样是用于返回日期的/时间的单独部分 , 返回类型是一个varchar型
Day()month()year()
数据库服务器当前部分时间
charindex函数
返回字符或字符串在另一个字符串中的起始位置
Charindex(expression1,expression2[,start_location])
Expression1是要到expression2中寻找的字符中 , start_location是开始查找的位置
返回一个整数 , 返回的整数是要找字符串再被找字符串中起始的位置 , 没有找到字符串 , 返回一个0值 。
Patindex函数
返回字符或者字符串在另一个字符串或者表达式中的位置 , patindex函数支持搜索字符串中使用通配符
Patindex(‘%BC%’,’ABCD’)
返回的是2
其中 , 如果不加通配符 , 两个参数要一样 , 比如patindex(‘abcd’,’abcd’)
Patindex函数例子
例一:找出Northwind.dbo.Categories表中Description字段中是包含单词“Bread”或“bread”的所有记录 , 那么选择语句就可能是这样:SelectDescriptionfromNorthwind.dbo.CategoriesWherepatindex("%[b,B]read%",description)>0PATINDEX中可以使用通配符来确定大写和小写的“b”
例二:找出Northwind.dbo.Categories表中Description字段中是包含单词“Bread”或“bread”,且第二子字母不是“e”的记录 。 selectDescriptionfromNorthwind.dbo.Categorieswherepatindex("%[b,B]read%",description)>0andpatindex("_[^e]%",description)=1通过在条件语句中增加一个使用^通配符的PATINDEX函数 , 我们可以过滤掉“Dessert,candies,andsweetbreads”这条记录 。 上面的查询结果只有一条记录 。
Charindex函数例子
假设你要显示Northwind数据库Customer表前5行联系人列的LastName 。 这是前5行数据ContactName------------------------------MariaAndersAnaTrujilloAntonioMorenoThomasHardyChristinaBerglund你可以看到 , CustomName包含客户的FirstName和LastName , 它们之间被一个空格隔开 。 我用CHARINDX函数确定两个名字中间空格的位置 。 通过这个方法 , 我们可以分析ContactName列的空格位置 , 这样我们可以只显示这个列的lastname部分 。 这是显示Northwind的Customer表前5行lastname的记录!selecttop5substring(ContactName,charindex("",ContactName)+1,len(ContactName))as[LastName]fromNorthwind.dbo.customers下面是这个命令输出的结果 。 LastName------------------------------AndersTrujilloMorenoHardyBerglund