系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 数据库 > mssql2008 > 详细页面

SQLServer之常用函数总结详解

时间:2023-12-07来源:系统城装机大师作者:佚名

SQLServer中的常用函数

字符串函数

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(会创建一个新表)

sql server 中没有limit 但是有top

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)

BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。

1
2
/* 查询id 1 到3 的数据 */
  select * from stu where id between '1' and '3'

ALTER TABLE 语句用于在已有的表中添加、修改或删除列。

1
2
3
alter table stu add stu_sj varchar(200)   --添加一列名为stu_sj
 
alter table stu drop column stu_sj  --删除列

DISTINCT 用于返回唯一不同的值。

1
2
/* 返回名字,重复的不返回 */
  select distinct stu_name from stu

到此这篇关于SQLServer之常用函数总结详解的文章就介绍到这了,

分享到:

相关信息

  • sql server2008数据库迁移的两种方法

    sql server2008数据库迁移的两种方法,具体内容如下方案一1、先将源服务器上的数据库文件打包(包括mdf和ldf文件),并且复制到目标服务器上。2、解压,然后在目标服务器上附加数据...

    2023-12-07

  • SQL SERVER 2008数据库日志文件收缩的方法

    最近公司的数据库随着业务量的增多,日志文件巨大(超过300G),造成磁盘空间不够用,进而后来的访问数据库请求无法访问。网上类似的方法也很多,但不可行,如下是我实践过,可行的,将日志...

    2023-12-07

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载