| 
 
| abs()      求绝对值 
 ceiling()  舍入到最大整数.3.33将被舍入为 4;2.89将被舍入为3;-3.61将被舍入为-3 Ceiling-天花板意思
 
 
 
 floor() 舍入到最小整数. 3.33将被舍入为3;2.89将被舍入为2;-3.61将被舍入为-4   floor-地板
 
 round() 四舍五入. 舍入到"离我半径最近的数". round-"半径". round(3.1425, 2)
 
 
 
 字符串函数
 
 len()  计算字符串长度
 
 lower()、upper():转小写、大写
 
 ltrim() 字符串左侧的空格去掉
 
 rtrim() 字符串右侧的空格去掉
 
 ltrim(rtrim('     bb     '))  先左后右 去掉两边的空格
 
 substring(string,start_position,length)
 
 参数string 为主字符串,start_position 为子字符串在主字符串中的起始位置,length为子字符串的最大长度
 
 select substring('abcdef111',2,3)
 
 
 
 日期函数
 
 getdate() 取得当前日期时间
 
 dateadd(datepart,number,date) 计算增加以后的日期.参数date为待计算的日期; 参数number为增量;参数datepart 为计量单位,可选值见备注. dateadd(day,3,date)为计算日期date的3天后的日期,
 
 而dateadd(month,-8,date) 为计算日期date的8个月之前的日期
 
 datediff (datepart,startdate,enddate) 计算两个日期之间的差额. datepart为计量单位,
 
 可取值参考 dateadd
 
 
 
 select datediff(year,FinDate,getdate()),count(*) from T_Employee
 
 group by DateDiff(year,FinDate,getdate())
 
 以上代码是 统计不同工龄的员工的个数。
 
 adtepart(datepart,date) 返回一个日期的特定部分
 
 
 
 求每年入职的员工个数
 
 select DatePart(year,FinDate),conut(*) from T_Employee
 
 group by DatePart(year,FInDate)
 
 
 
 类型函数转换
 
 cast (expression as data_type)   (表达式 as 数据类型)
 
 convert (data_type,expression)   (数据类型 as 表达式)
 
 select FldNumber
 
 right(FldNumber,3) as 后三位
 
 cast(right(FldNumber,3) as integer) as 后三位的整数形式
 
 cast(right(FldNumber,3) as integer)+1 as 后三位加1
 
 convert(integer,right(FldNumber,3))/2 as 后三位除以2
 
 from T_Person
 
 把一个字符串转换成一个date类型
 
 cast 语法
 
 select cast('123' as int) ,cast('2008-08-08' as datetime)
 
 convert 语法
 
 convert(datetime,'2009-09-09'),convert(varchar(50),123)
 
 
 空值处理函数
 
 isnull (expression,value) 如果expression 不为空则返回expression,否则返回value
 
 select isnull (FName,'佚名') as 姓名 from T_Employee
 
 
 
 case 单值判断,相当于 switch case
 
 语法:
 
 case expression
 
 whern value1 then returnvalue1
 
 whern value2 then returnvalue2
 
 whern value3 then returnvalue3
 
 else defaultreturnvalue
 
 end
 
 
 
 例子:
 
 select FNae
 
 (
 
 case FLeve1
 
 when 1 then '普通客户'
 
 when 2 then '会员'
 
 when 3 then 'VIP'
 
 else '未知客户类型'
 
 end
 
 ) as 客户类型
 
 from T_Customer
 
 
 
 select FName,
 
 (
 
 when FSalary<2000 then '低收入'
 
 when FSalary>=2000 and FSalary<=5000 then '中等收入'
 
 else '高收入'
 end
 
 ) as 收入水平
 
 from T_Employee
 
 
 | 
 |