• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    SQLServer之常用函数总结详解

    发布者: 雪落无声 | 发布时间: 2025-6-18 12:41| 查看数: 126| 评论数: 0|帖子模式

    SQLServer中的常用函数

    字符串函数

    len() 计算字符串的长度
    1. select LEN(name) from test1  --计算name的长度
    复制代码
    大小写转换 lower() upper()
    1. select lower('STUDENT !')
    2. select upper('student !')
    复制代码
    去空 ltrim() 字符串左侧的空格去掉 ,rtrim()字符串右侧的空格去掉
    1. declare @str varchar(100) = ' a a a '
    2. select ltrim(@str)
    3. select rtrim(@str)
    复制代码
    字符串截取 substring() left() right()
    1. select substring('HelloWorld!',6,6)  --可截取任意长度
    2. select left('HelloWorld!' ,5)  --从左开始截取
    3. select right('HelloWorld!' ,6) --从右开始截取
    复制代码
    字符串替换 replace()
    1. select replace('HelloWorld!','o','e')    --string,要被替换的字符串,替换的字符串
    复制代码
    字符串 掉个顺序 reverse()
    1. select reverse('abc')    --cba
    复制代码
    返回 字符串1在字符串2中出现的未位置 charindex()
    1. charindex(srt1 ,srt2)--srt1 在srt2中的开始位置

    2. 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. select min(id) from test1
    2. select max(id) from test1
    复制代码
    求和 sum()
    1. select sum(id) from test1
    复制代码
    计算总数 count()
    1. select count(id) from test1
    复制代码
    分组
    1. 统计学生的总成绩并排序
    2. select stu_id as 学生编号 ,name as 学生姓名 , SUM(语文+英语+数学+代数) as 总分from tb_stuAchievement
    3. ORDER BY 总分 DESC
    4. GROUP BY stu_id ,name
    复制代码
    (函数可能不全,我只记录了我用到的,完整的函数可以查查手册)
    日期和时间函数

    获取当前日期GetDate
    1. select getdate()
    复制代码
    GetUTCDate 获取UTC时间值
    1. select GETUTCDATE()
    复制代码
    单独获取年月日
    1. select year(getdate())
    2. select month(getdate())
    3. select day(getdate())
    复制代码
    日期减法 DATEDIFF
    1. select datediff(YYYY,'2011-11-11','2012-12-12')    --输出1 年份相减之后的确是1
    2. select datediff(day,'2011-11-11','2012-12-12')     --输出 397 两个日期相差的天数
    复制代码
    SQLServer 2008中新增的日期时间型函数
    1. 1、获取系统时间 SysDateTime()
    2. 2、获取当前日期和时间 SysDateTimeOffset
    3. 3、获取系统UTC时间 SysUTCDateTime
    4. 4、Current_TimeStamp当前数据库系统时间戳
    5. 5、判断是否为日期数据isDate
    6.                 select isdate('2012-12-12')    -- 输出1
    7.      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(会创建一个新表)
    复制代码
    sql server 中没有limit 但是有top
    1. /*查询 从n开始的m条数据 */
    2.   declare @n int=2;
    3.   declare @m int = 5;
    4.   select top (@m) * from stu
    5.   where id not in (select top (@n) id from stu)

    6.   /*查询n到m之间的数据*/
    7.   declare @n int=2;
    8.   declare @m int = 5;
    9.   select top (@m-@n+1) * from stu
    10.   where id not in (select top (@n-1) id from stu)
    复制代码
    BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
    1. /* 查询id 1 到3 的数据 */
    2.   select * from stu where id between '1' and '3'
    复制代码
    ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
    1. alter table stu add stu_sj varchar(200)   --添加一列名为stu_sj

    2. alter table stu drop column stu_sj  --删除列
    复制代码
    DISTINCT 用于返回唯一不同的值。
    1. /* 返回名字,重复的不返回 */
    2.   select distinct stu_name from stu
    复制代码
    到此这篇关于SQLServer之常用函数总结详解的文章就介绍到这了,更多相关SQLServer之常用函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/article/220933.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表