数字函数
ABS
() 求绝对值(让我想起了
ABS
防抱死系统)
CEILING() 舍入到最大整数,-3.6舍入到-3
FLOOR
() 舍入到最小整数,-3.6舍入到-4
ROUND
() 四舍五入,
ROUND
(3.141, 2) 需要传入两个参数,前一个为操作数,后一个为精度
字符串函数
LEN() 计算字符串长度
LOWER() 转换为小写字符
UPPER() 转换为大写字符
LTRIM() 去左空格
RTRIM() 去右空格
SUBSTRING(string, start_position, lenth) 字符串截取函数,从start_position处开始截取长度为lenth
日期函数
GETDATE
() 取当前日期
DATEADD(datepart, number,
date
) 函数用于计算增量后的日期,datepart 是计量单位,
date
是需要操作的日期
datepart 可选取:year, quarter, month, dayofyear, day, week, weekday, hour, minute, second
DATEDIFF(datepart, startdate, enddate) 根据datepart求得两个日期之间的差值
DATEPART(datepart,
date
) 返回日期的指定部分
类型转换
CAST(expression
as
type)
CONVERT(type, expression)
空值处理函数
ISNULL(expression, value) 判断若 expression 不为空返回 expression,否则返回 value
select ISNULL(name,
'佚名'
) from Person
单值判断
类似于
switch
case
语句。
CASE expression
WHEN value1 THEN return1
WHEN value2 THEN return2
ELSE return3
END
当 when 后做范围判断时,
case
后可以没有表达式。
ROW_NUMBER() 函数
作用是统计行号。
ROW_NUMBER()是开窗函数,不能出现在 where 中,只能出现在 select、order by 中。
select * from
(select ROW_NUMBER() OVER(order by salary)
as
rownum, id, name, from Person)
as
e1
where e1.rownum > 3
and
e1.rownum < 5