时间:2023-12-07来源:系统城装机大师作者:佚名
len() 计算字符串的长度
1 | select LEN( name ) from test1 --计算name的长度 |
大小写转换 lower() upper()
1 2 |
select lower ( 'STUDENT !' ) select upper ( 'student !' ) |
去空 ltrim() 字符串左侧的空格去掉 ,rtrim()字符串右侧的空格去掉
1 2 3 |
declare @str varchar (100) = ' a a a ' select ltrim(@str) select rtrim(@str) |
字符串截取 substring() left() right()
1 2 3 |
select substring ( 'HelloWorld!' ,6,6) --可截取任意长度 select left ( 'HelloWorld!' ,5) --从左开始截取 select right ( 'HelloWorld!' ,6) --从右开始截取 |
字符串替换 replace()
1 | select replace ( 'HelloWorld!' , 'o' , 'e' ) --string,要被替换的字符串,替换的字符串 |
字符串 掉个顺序 reverse()
1 | select reverse( 'abc' ) --cba |
返回 字符串1在字符串2中出现的未位置 charindex()
1 2 3 |
charindex(srt1 ,srt2) --srt1 在srt2中的开始位置 select charindex( 'H' , 'elloHWorld' ) 结果为:5 --只能查第一次出现的位置,匹配不到返回0 |
指定的次数重复字符串值 replicate()
1 | select replicate( 'abc' ,4) 结果为:abcabcabcabc |
聚合函数对一组值计算后返回单个值。除了count(统计项数)函数以外,其他的聚合函数在计算式都会忽略空值(null)。所有的聚合函数均为确定性函数。
平均值 avg() 算一组数的总和,然后除以为null的个数,得到平均值。
1 | select avg (id) from test1 avg (列名) |
最小值min() 最大值max()
1 2 |
select min (id) from test1 select max (id) from test1 |
求和 sum()
1 | select sum (id) from test1 |
计算总数 count()
1 | select count (id) from test1 |
分组
1 2 3 4 |
统计学生的总成绩并排序 select stu_id as 学生编号 , name as 学生姓名 , SUM (语文+英语+数学+代数) as 总分 from tb_stuAchievement ORDER BY 总分 DESC GROUP BY stu_id , name |
(函数可能不全,我只记录了我用到的,完整的函数可以查查手册)
获取当前日期GetDate
1 | select getdate() |
GetUTCDate 获取UTC时间值
1 | select GETUTCDATE() |
单独获取年月日
1 2 3 |
select year (getdate()) select month (getdate()) select day (getdate()) |
日期减法 DATEDIFF
1 2 |
select datediff(YYYY, '2011-11-11' , '2012-12-12' ) --输出1 年份相减之后的确是1 select datediff( day , '2011-11-11' , '2012-12-12' ) --输出 397 两个日期相差的天数 |
SQLServer 2008中新增的日期时间型函数
1 2 3 4 5 6 7 |
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() 从文本字段中提取字符。
1 | SELECT MID(City,1,3) as SmallCity FROM Persons |
ROUND() 函数 数值字段舍入为指定的小数位数。
1 | SELECT ROUND(column_name,decimals) FROM table_name |
NOW() 函数 返回当前的日期和时间。
1 | SELECT NOW() FROM table_name |
FORMAT () 用于对字段的显示进行格式化。
1 | select FORMAT(stu_intime, 'yyyy-MM-dd hh:mm:ss' ) as intime from stu |
SELECT INTO 从一个表中选取数据,然后把数据插入另一个表中。
1 | select stu_name,stu_id into stu1 from stu --将stu表中的stu_id和stu_name插入新表stu1(会创建一个新表) |
1 2 3 4 5 6 7 8 9 10 11 |
/*查询 从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) |
1 2 |
/* 查询id 1 到3 的数据 */ select * from stu where id between '1' and '3' |
1 2 3 |
alter table stu add stu_sj varchar (200) --添加一列名为stu_sj alter table stu drop column stu_sj --删除列 |
1 2 |
/* 返回名字,重复的不返回 */ select distinct stu_name from stu |
到此这篇关于SQLServer之常用函数总结详解的文章就介绍到这了,
2023-12-07
SQL SERVER 2008 r2 数据压缩的两种方法2023-12-07
SQL Server 2008数据库设置定期自动备份的方法2023-12-07
sqlserver2008首次登录失败问题及解决方法环境:SQLServer2008R2一台、web服务器一台 软件支持:iis、动态网站源代码 拓扑:步骤:数据库部分:1、开始-点击SQL Server Management Studio2、输入SQLServer服务器的名称或IP地...
2023-12-07
因为需要本地测试开发一个小型的cms系统,那么下面的sql server 2008 就可以安装下面的文件了,如果正式使用推荐安装企业版。下载地址:SQL Server 2008 Express 中文简体安装包x...
2023-12-07