SQL 常用函数

SQL 常用函数

  • CONCAT 连接函数
  • 分组排序函数
  • LEN
  • RIGHT
  • LEFT
  • SUBSTRING
  • ISNULL
  • COALESCE
  • GETDATE
  • YEAR
  • MONTH
  • DAY
  • ISDATE
  • DATENAME
  • DATEPART
  • PARSENAME
  • QUOTENAME
  • REPLICATE
  • REVERSE
  • SPACE
  • ASCII
  • UNICODE
  • CHAR
  • NCHAR
  • REPLACE
  • RTRIM
  • LTRIM
  • UPPER
  • LOWER
  • STUFF
  • CHARINDEX
  • SOUNDEX
  • DIFFERENCE
  • STR
  • PATINDEX

CONCAT 连接函数

--直接连接
SELECT CONCAT(N'A', N'B')				--返回AB
--以_为分隔符连接
SELECT CONCAT_WS(N'_',N'A', N'B')		--返回A_B

SQL 常用函数_第1张图片

分组排序函数

  • ROW_NUMBER() OVER (PARTITION BY 分组字段 ORDER BY 排序字段 DESC)
--以[性别]分组,[入职时间]进行倒序排序
SELECT *, ROW_NUMBER() OVER (PARTITION BY [性别] ORDER BY [入职时间] DESC) [Rank] FROM [Test].[dbo].[Test.Source]
  • 分组排序前:
    SQL 常用函数_第2张图片
  • 分组排序后:
    SQL 常用函数_第3张图片

LEN

--LEN():返回指定字符串的长度,字符串的前导空格计算在内,尾随空格忽略不计
SELECT LEN(N'ABC')		    --返回字符串长度3
SELECT LEN(N'   ABC')		--返回字符串长度6,包含前导空格
SELECT LEN(N'ABC   ')		--返回字符串长度3,不包含未遂空格

SQL 常用函数_第4张图片

RIGHT

--RIGHT():返回指定字符串右侧指定长度的字符串
SELECT RIGHT(N'TEST', 2)		--返回ST

在这里插入图片描述

LEFT

--LEFT():返回指定字符串左侧指定长度的字符串
SELECT LEFT(N'TEST', 2)			--返回TE

在这里插入图片描述

SUBSTRING

--SUBSTRING():返回指定字符串中指定截取起始位置和指定长度的字符串
SELECT SUBSTRING(N'TEST', 2, 2)		--返回ES

在这里插入图片描述

ISNULL

--ISNULL():判断第一个参数是否为空(NULL),如是,则返回第二个参数,如否,则返回第一个参数
SELECT ISNULL(N'', 'A')		    --返回空字符串
SELECT ISNULL(NULL, 'A')		--返回A
SELECT ISNULL(N'A', 'B')		--返回A
SELECT ISNULL(NULL, NULL)		--返回NULL

SQL 常用函数_第5张图片

COALESCE

--COALESCE():返回所有参数里第一个为非空(NOT NULL)的参数,参数个数至少两个,至多N个
SELECT c(N'A', N'')					--返回A
SELECT COALESCE(NULL, N'')					--返回空字符串
SELECT COALESCE(NULL, NULL, N'A', N'B')		--返回A

SQL 常用函数_第6张图片

GETDATE

--GETDATE():获取当前日期及时间
SELECT GETDATE()		--返回当前日期及时间

在这里插入图片描述

YEAR

--YEAR():返回指定日期表达式的年
SELECT YEAR(N'2022-03-16')					--返回2022
SELECT YEAR(N'2022-03-16 11:00:05.800')		--返回2022
SELECT YEAR(GETDATE())						--返回当前日期及时间的年

SQL 常用函数_第7张图片

MONTH

--MONTH():返回指定日期表达式的月
SELECT MONTH(N'2022-03-16')						--返回3
SELECT MONTH(N'2022-03-16 11:00:05.800')		--返回3
SELECT MONTH(GETDATE())							--返回当前日期及时间的月

SQL 常用函数_第8张图片

DAY

--DAY():返回指定日期表达式的日
SELECT DAY(N'2022-03-16')					--返回16
SELECT DAY(N'2022-03-16 11:00:05.800')		--返回16
SELECT DAY(GETDATE())						--返回当前日期及时间的日

SQL 常用函数_第9张图片

ISDATE

--ISDATE():判断指定的字符串是否为日期,如是,返回1,如否,返回0,日期分隔符“-”换成“/”,返回结果一致
SELECT ISDATE(N'2022-03-16')					--年-月-日 返回1
SELECT ISDATE(N'03-16-2022')					--月-日-年 返回1
SELECT ISDATE(N'16-2022-03')					--日-年-月 返回0
SELECT ISDATE(N'16-03-2022')					--日-月-年 返回0
SELECT ISDATE(N'2022-03-16 11:00:05.800')		--年-月-日 返回1
SELECT ISDATE(N'2022-03-16 11:00:05.800')		--月-日-年 返回1
SELECT ISDATE(N'2022-02-29')					--判断闰年,2022年非闰年,返回0

SQL 常用函数_第10张图片

DATENAME

--DATENAME():返回第二个参数中第一个参数所指定的值
SELECT DATENAME(YEAR, N'2022-03-16 11:00:05.800')		--返回第二个参数值中第一个参数YEAR所指定的年
SELECT DATENAME(YY, N'2022-03-16 11:00:05.800')			--YEAR可以为缩写形式YY

SQL 常用函数_第11张图片

  • 缩写对应表格
    SQL 常用函数_第12张图片

DATEPART

--DATEPART():返回第二个参数中第一个参数所指定的整数,与DATENAME()使用方式类似,区别在于两者返回类型不同
SELECT DATEPART(HH, N'2022-03-16 11:00:05.800')		--返回11

在这里插入图片描述

PARSENAME

--PARSENAME():倒着截取以“.”作为分割的字符串,仅支持4位
SELECT PARSENAME(N'192.168.0.1', 1) COLUMN4		--返回第4位
	  ,PARSENAME(N'192.168.0.1', 2) COLUMN3		--返回第3位
	  ,PARSENAME(N'192.168.0.1', 3) COLUMN2		--返回第2位
	  ,PARSENAME(N'192.168.0.1', 4) COLUMN1		--返回第1位

SQL 常用函数_第13张图片

QUOTENAME

--QUOTENAME():根据指定的分隔符,返回字符串标识符,分隔符未指定时默认[]
SELECT QUOTENAME(N'A', N'')				--返回[A]
SELECT QUOTENAME(N'A', N'[]')			--返回[A]
SELECT QUOTENAME(N'A', N'''')			--返回'A'
SELECT QUOTENAME(N'A', N'""')			--返回"A"
SELECT QUOTENAME(N'A[]B', N'[]')		--返回[A[]]B],]]表示转义字符

SQL 常用函数_第14张图片

REPLICATE

--REPLICATE():返回指定字符串指定重复次数后的字符串
SELECT REPLICATE(N'A', 3)		--返回AAA
SELECT REPLICATE(N'AB', 3)		--返回ABABAB

SQL 常用函数_第15张图片

REVERSE

--REVERSE():返回指定字符串的逆序字符串
SELECT REVERSE(N'123')		--返回321
SELECT REVERSE(N'ABC')		--返回CBA

SQL 常用函数_第16张图片

SPACE

--SPACE():指定空格的个数
SELECT N'1'+SPACE(5)+N'2'				--返回1     2
SELECT LEN(N'A'+SPACE(5)+N'B')			--返回7

SQL 常用函数_第17张图片

ASCII

--ASCII():返回指定字符串或字符串中第一个字符的ASCII码
SELECT ASCII(N'A')		--返回A的ASCII码65
SELECT ASCII(N'AB')		--返回字符串中第一个字符的ASCII码65

SQL 常用函数_第18张图片

UNICODE

--ASCII()用于操作单字节,双字节采用UNICODE()
--UNICODE():根据UNICODE标准返回指定字符或字符串中第一个字符的INT整数值
SELECT UNICODE(N'A')		--返回字符对应的整数值65
SELECT UNICODE(N'ABC')		--返回字符串中第一个字符对应的整数值65

SQL 常用函数_第19张图片

CHAR

--CHAR():返回指定ASCII码对应的字符,范围为0-255,越界返回NULL
SELECT CHAR(65)			--返回ASCII码值为65所对应的字符A
SELECT CHAR(256)		--越界返回NULL

SQL 常用函数_第20张图片

NCHAR

--NCHAR():根据UNICODE标准返回指定INT整数值代码的UNICODE字符
SELECT NCHAR(N'65')		--返回字符A

在这里插入图片描述

REPLACE

--REPLACE():用第三个字符串替换出现在第一个字符串中所有的第二个字符串
SELECT REPLACE(N'ABCB', N'B', N'D')		--返回ADCD
SELECT REPLACE(N'ABBC', N'B', N'')		--用空字符串替换指定字符串,返回AC

SQL 常用函数_第21张图片

RTRIM

--RTRIM():返回字符串去除尾随空格之后的字符串
SELECT RTRIM(N'ABC     ')			--返回ABC
SELECT LEN(RTRIM(N'ABC     '))		--返回3

SQL 常用函数_第22张图片

LTRIM

--LTRIM:返回字符串去除前导空格之后的字符串
SELECT LTRIM(N'     ABC')			--返回ABC
SELECT LEN(N'     ABC')				--返回8
SELECT LEN(LTRIM(N'     ABC'))		--返回3

SQL 常用函数_第23张图片

UPPER

--UPPER():返回指定英文字符串的大写形式字符串,非英文字符返回原值
SELECT UPPER(N'test')		--返回TEST
SELECT UPPER(N'1024')		--非英文字符返回原值1024

SQL 常用函数_第24张图片

LOWER

--LOWER():返回指定英文字符串的小写形式字符串,非英文字符返回原值
SELECT LOWER(N'TEST')		--返回test
SELECT LOWER(N'1024')		--非英文字符返回原值1024

SQL 常用函数_第25张图片

STUFF

--STUFF():替换字符串中指定长度的字符串,涉及四个参数
--参数1:指定要操作的字符串
--参数2:指定要替换字符串的起始位置
--参数3:指定要替换字符的长度
--参数4:指定要用于替换的字符串
SELECT STUFF(N'ABCD', 2, 2, N'EE')		--起始位置为2,替换长度为2,用“EE”替换,返回AEED
SELECT STUFF(N'ABCD', 2, 2, N'')		--起始位置为2,替换长度为2,用空字符串替换,可看成删除指定字符串,返回AD

SQL 常用函数_第26张图片

CHARINDEX

--CHARINDEX():返回指定字符串在另一指定字符串中出现的起始位置,未出现则返回0
SELECT CHARINDEX(N'0', N'1024')			--“0”在“1024”中出现的起始位置为2,返回2
SELECT CHARINDEX(N'5', N'1024')			--“5”在“1024”中未出现,返回0
SELECT CHARINDEX(N'ES', N'TEST')		--“ES”在“TEST”中出现的起始位置为2,返回2

SQL 常用函数_第27张图片

SOUNDEX

--SOUNDEX():返回指定字符串的SOUNDEX值
--SOUNDEX为语音算法,根据英文字符的读音计算近似值,由四个字符构成,第一个字符为英文字母,后三个字符为数字
--将英文字符按照以下规则进行替换,第一个英文字符不进行替换,对应值为0的英文字符忽略
--A E H I O U W Y -> 0
--B F P V -> 1
--C G J K Q S X Z -> 2
--D T -> 3
--L -> 4
--M N -> 5
--R -> 6
--注意:如果字符串中存在相同对应数字的2个或2个以上的字母在一起,则删除其它的,只保留1个,去除对应值为0的字符,只返回前4个字节,不够用0填充
SELECT SOUNDEX(N'TEST')		--返回T200

SQL 常用函数_第28张图片

DIFFERENCE

--DIFFERENCE():返回两个字符串SOUNDEX值的差值,该差值反映了两个字符串的相似程度
--返回值为0-4,0代表几乎不同或完全不同,4代表几乎相同或完全相同
SELECT DIFFERENCE(N'TEST', N'1024')		--返回0
SELECT DIFFERENCE(N'TEST', N'TEST')		--返回4
SELECT DIFFERENCE(N'SQL', N'TEST')		--返回2

SQL 常用函数_第29张图片

STR

--STR():返回指定数值的等效字符串
--第一个参数为指定要操作的数值
--第二个参数为指定要返回的字符串长度,默认值为10,不足时用空字符串补位
--第三个参数为要返回的小数位数,默认值为0,不足时用0补位
SELECT STR(1024)					--返回      1024
SELECT LEN(STR(1024))				--返回10
SELECT STR(1024, 15)				--返回           1024
SELECT LEN(STR(1024, 15))			--返回15
SELECT STR(1024, 20, 2)				--返回             1024.00
SELECT LEN(STR(1024, 20, 2))		--返回20

SQL 常用函数_第30张图片

PATINDEX

--PATINDEX():返回指定字符串中指定模式在另一指定字符串中第一次出现的起始位置,未找到则返回0
SELECT PATINDEX(N'TEST', N'TEST1024TEST')					--返回0
SELECT PATINDEX(N'TEST', N'TEST')							--返回1
SELECT PATINDEX(N'TEST%', N'1024TEST1024')					--返回0
SELECT PATINDEX(N'%TEST%', N'1024TEST1024TEST1024')			--返回5
SELECT PATINDEX(N'%[TEST]%', N'1024TEST1024TEST1024')		--返回字符串TEST第一次出现的位置5
SELECT PATINDEX(N'%[^TEST]%', N'1024TEST1024TEST1024')		--返回不等于字符T、E、S、T的其它字符第一次出现的位置1
SELECT PATINDEX(N'%[^TEST]%', N'T1024TEST1024TEST1024')		--返回不等于字符T、E、S、T的其它字符第一次出现的位置2

SQL 常用函数_第31张图片

你可能感兴趣的:(SQL,sql,sqlserver,数据库)