SQL Server 常用函数演示
我们创建一张表来演示我们的函数。
聚合函数
-- 平均数 AVG
SELECT AVG(age) FROM guest
-- 计数行数
SELECT COUNT(1) FROM guest
SELECT COUNT(*) FROM guest -- 性能稍差 据说
-- 获取最大值
SELECT MAX(age) FROM guest
-- 获取最小值
SELECT MIN(age) FROM guest
-- 计算某列的所有数的和,这个很容易和 COUNT 混淆
SELECT SUM(age) FROM guest
字符串函数
-- 转换为小写
SELECT LOWER('FoxDevelop')Code language: JavaScript (javascript)
-- 转换为大写
SELECT UPPER('bamn')Code language: JavaScript (javascript)
-- 获取子字符串,下标从1开始
SELECT SUBSTRING('www.FoxDevelop.com',1,4)Code language: JavaScript (javascript)
-- 计算字符的长度
SELECT LEN('www.FoxDevelop.com')
SELECT LEN(name) FROM guestCode language: JavaScript (javascript)
-- ROUND() 函数用于把数值字段舍入为指定的小数位数
SELECT ROUND(age,2) FROM guest
SELECT ROUND(1.2222,2)Code language: CSS (css)
-- 转换为小写
SELECT LEFT('www.FoxDevelop.com',3)Code language: JavaScript (javascript)
-- right 返回字符串右边开始指定个数的字符
SELECT RIGHT('www.FoxDevelop.com',3)Code language: JavaScript (javascript)
-- 去掉空格,trim 不是可识别的内置函数名称,可以结合 ltrim 和 rtrim
-- SELECT TRIM(' www.FoxDevelop.com ') -- 报错
SELECT LTRIM(RTRIM(' www.FoxDevelop.com '))Code language: JavaScript (javascript)
-- patindex 返回指定表达式中某模式第一次出现的起始位置,未找到则返回0
SELECT PATINDEX('%ab%','123ab46') -- 4
SELECT PATINDEX('%a5b%','123ab46') -- 0Code language: JavaScript (javascript)
-- replace 用第三个表达式替换第一个字符串表达式中出现的所有第二个给定的字符串表达式
SELECT REPLACE('www.FoxDevelop.com','.cn','.com') -- www.bamn.comCode language: JavaScript (javascript)
日期时间函数
-- 获取当前时间
SELECT GETDATE()
-- dateadd 在指定日期上加一段时间间隔,返回新的 datetime 值
SELECT DATEADD(d,5,GETDATE()) -- d 表示天数 +5
SELECT DATEADD(hh,5,GETDATE()) -- hh 表示小时 +5
-- datepart 返回指定日期的指定日期部分的整数
-- 2019-4-20 11:45:12
SELECT DATEPART(dd,GETDATE()) -- 20
SELECT DATEPART(yy,GETDATE()) -- 2019Code language: CSS (css)
SELECT DAY(GETDATE()) -- 20
SELECT MONTH(GETDATE()) -- 4
SELECT YEAR(GETDATE()) -- 2019
数学与转换函数
-- abs 返回绝对值
SELECT ABS(-123)
SELECT RAND()
-- floor 返回小于或等于指定数值表达式的最大整数
SELECT FLOOR(1.23)Code language: CSS (css)
-- 判断一个数是正数还是负数
SELECT SIGN(-1.23)
SELECT SIGN(123)Code language: CSS (css)
-- 类型转换,比如把字符串转换为数字
SELECT '11'
SELECT '11>2' WHERE 11>2
SELECT '11>2' WHERE '11'>2Code language: JavaScript (javascript)
SELECT '11'+12
SELECT CONVERT(int,'11')+1Code language: JavaScript (javascript)
-- cast 也是格式转换函数
SELECT '年龄:' + 23 -- 在将 varchar 值 '年龄:' 转换成数据类型 int 时失败。
SELECT '年龄:' + CAST(23 AS NVARCHAR)Code language: PHP (php)
Previous: UPDATE 与 ALTER 的区别及删除操作
Next: 使用脚本修改表名与字段名