------------------字符串函数----------------------
--charindex(要查找的字符串,被查找的字符串,开始查找的位置):返回要查找的字符串在被查找的字符串中的位置
select charindex('sve','hello sve hi sve',1)--结果为7
select charindex('sve','hello sve hi sve',8)--结果为14
--len(字符串):返回字符串的长度
select len('hello sve')
--lower(字符串):将字母都转小写
select lower('AbC')
--ltrim(字符串):消除左边的空格 rtrim(字符串):消除右边的空格
select ltrim(' abc ')
--right(字符串,要获取的字符数)
select right('abcdef',2)
--replace(字符串,将被替换的字符,替换的字符)
select replace('abcabcc','ab','ww')
--stuff(字符串,要删除的开始位置,要删除的字符个数,要插入的字符串)
select stuff('abcdefg',3,2,'你好')
---------------日期函数------------------
--getdate():获取当前时间
select getdate()
--dateadd(日期部分,要增加的数值,日期):根据制定日期部分增加相应数值
select dateadd(mm,2,'2013/2/1')--显示2013/4/1
select dateadd(yy,-2,'2013/2/1')--显示2011/2/1
--datediff(日期部分,日期1,日期2):根据日期部分算2个日期之间的差距(即:日期2-日期1)
select datediff(mm,'2013/5/1','2013/10/5')--显示5
select datediff(mm,'2013/10/5','2013/5/1')--显示-5
--datename(日期部分,日期):获取指定日期部分的字符串形式
select datename(dw,'2013/11/6')
--datepart(日期部分,日期):获取指定日期部分的整数形式
select datepart(dw,'2013/11/6')
--------------数学函数----------------
--round(数值,精确度):对数值根据精确度进行四舍五入
select round(43.125,1)--43.100
select round(43.125,2)--43.130
--sign(数值):判断数值是正数、负数或0,如果为正数返回+1,负数返回-1,0返回0
select sign(10)
--rand():产生随机数
select rand()--产生0~1的随机数(默认以系统时间为种子)
select rand(50)--产生固定的值(种子设置为固定的50)
----------------系统函数-----------------------
--Convert(目标数据类型,需要进行转换的数值):数据类型转换
select 1+2--加法运算
select '1'+'2'--字符的连接
select '1'+2--显示3
select '1'+convert(varchar,2)--显示12
--datalength(表达式):计算表达式占几个字节
select datalength('ab')--显示2
select datalength('你好')--显示4
----------------聚合函数---------------------
select sum(score) from StuScore--求分数总和
select sum(score) from StuScore where score>=60--求及格的分数总和
select max(score) from StuScore--最大值
select min(score) from StuScore--最小值
select avg(score) from StuScore--平均值
--Count(参数):参数可以是*,也可以是列名
select count(*) from StuScore--获取结果集的行数
--注意:使用count(*)不管字段是否为NULL都会被统计
select count(address) from StuInfo--获取address字段不为NULL的行数