最近使用开辟的过程中出现了一个小问题,顺便记录一下原因和方法--函数sql
列举了一些SQL中的经常使用函数。
-
数字函数
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
这样可以随便取到想要的数据行。
-The End-
© Jervis
文章结束给大家分享下程序员的一些笑话语录:
马云喜欢把自己包装成教主,张朝阳喜欢把自己包装成明星,李彦宏喜欢把自己包装成的很知性,丁磊喜欢把自己包装的有创意,李开复总摆出一副叫兽的样子。看来的。其实我想说,缺啥补啥,人之常情。
---------------------------------
原创文章 By
函数和sql
---------------------------------