SQLServer之常⽤函数总结详解
SQLServer中的常⽤函数
字符串函数
len() 计算字符串的长度
select LEN(name) from test1  --计算name的长度
字段字符串去重复⼤⼩写转换 lower() upper()
select lower('STUDENT !')
select upper('student !')
去空 ltrim() 字符串左侧的空格去掉,rtrim()字符串右侧的空格去掉
declare @str varchar(100) = ' a a a '
select ltrim(@str)
select rtrim(@str)
字符串截取 substring() left() right()
select substring('HelloWorld!',6,6)  --可截取任意长度
select left('HelloWorld!' ,5)  --从左开始截取
select right('HelloWorld!' ,6) --从右开始截取
字符串替换 replace()
select replace('HelloWorld!','o','e')    --string,要被替换的字符串,替换的字符串
字符串掉个顺序 reverse()
select reverse('abc')    --cba
返回字符串1在字符串2中出现的未位置 charindex()
charindex(srt1 ,srt2)--srt1 在srt2中的开始位置
select charindex('H','elloHWorld') 结果为:5 --只能查第⼀次出现的位置,匹配不到返回0
指定的次数重复字符串值 replicate()
select replicate('abc',4) 结果为:abcabcabcabc
聚合函数
聚合函数对⼀组值计算后返回单个值。除了count(统计项数)函数以外,其他的聚合函数在计算式都会忽略空值(null)。所有的聚合函数均为确定性函数。
平均值 avg() 算⼀组数的总和,然后除以为null的个数,得到平均值。
select avg(id) from test1    avg(列名)
最⼩值min()最⼤值max()
select min(id) from test1
select max(id) from test1
求和 sum()
select sum(id) from test1
计算总数 count()
select count(id) from test1
分组
统计学⽣的总成绩并排序
select stu_id as 学⽣编号 ,name as 学⽣姓名 , SUM(语⽂+英语+数学+代数) as 总分from tb_stuAchievement ORDER BY 总分 DESC
GROUP BY stu_id ,name
(函数可能不全,我只记录了我⽤到的,完整的函数可以查查⼿册)
⽇期和时间函数
获取当前⽇期GetDate
select getdate()
GetUTCDate 获取UTC时间值
select GETUTCDATE()
单独获取年⽉⽇
select year(getdate())
select month(getdate())
select day(getdate())
⽇期减法 DATEDIFF
select datediff(YYYY,'2011-11-11','2012-12-12')    --输出1 年份相减之后的确是1
select datediff(day,'2011-11-11','2012-12-12')    --输出 397 两个⽇期相差的天数
SQLServer 2008中新增的⽇期时间型函数
1、获取系统时间 SysDateTime()
2、获取当前⽇期和时间 SysDateTimeOffset
3、获取系统UTC时间 SysUTCDateTime
4、Current_TimeStamp当前数据库系统时间戳
5、判断是否为⽇期数据isDate
select isdate('2012-12-12')    -- 输出1
    select isdate('xxxx-12-12')  -- 输出0
(函数可能不全,我只记录了部分,完整的函数可以查查⼿册)
MID() 从⽂本字段中提取字符。
SELECT MID(City,1,3) as SmallCity FROM Persons
ROUND() 函数数值字段舍⼊为指定的⼩数位数。
SELECT ROUND(column_name,decimals) FROM table_name
NOW() 函数返回当前的⽇期和时间。
SELECT NOW() FROM table_name
FORMAT () ⽤于对字段的显⽰进⾏格式化。
select FORMAT(stu_intime,'yyyy-MM-dd hh:mm:ss') as intime from stu
SELECT INTO 从⼀个表中选取数据,然后把数据插⼊另⼀个表中。
select stu_name,stu_id into stu1 from stu  --将stu表中的stu_id和stu_name插⼊新表stu1(会创建⼀个新表) sql server 中没有limit 但是有top
/*查询从n开始的m条数据 */
declare @n int=2;
declare @m int = 5;
select top (@m) * from stu
where id not in (select top (@n) id from stu)
/*查询n到m之间的数据*/
declare @n int=2;
declare @m int = 5;
select top (@m-@n+1) * from stu
where id not in (select top (@n-1) id from stu)
BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、⽂本或者⽇期。
/* 查询id 1 到3 的数据 */
select * from stu where id between '1' and '3'
ALTER TABLE 语句⽤于在已有的表中添加、修改或删除列。
alter table stu add stu_sj varchar(200)  --添加⼀列名为stu_sj
alter table stu drop column stu_sj  --删除列
DISTINCT ⽤于返回唯⼀不同的值。
/* 返回名字,重复的不返回 */
select distinct stu_name from stu
到此这篇关于SQLServer之常⽤函数总结详解的⽂章就介绍到这了,更多相关SQLServer之常⽤函数内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。