T-SQL:函数大全

Posted yuanzijian-ruiec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了T-SQL:函数大全相关的知识,希望对你有一定的参考价值。

1.CONCAT函数

SELECT custid, country, region, city,
  country + N, + region + N, + city AS location
FROM Sales.Customers;

对有NULL 数据行加减也为NULL

 技术分享图片

怎么解决呢 这里就用到了 CONCAT 函数

SELECT custid, country, region, city,
  country + COALESCE( N, + region, N‘‘) + N, + city AS location
FROM Sales.Customers;

CONCAT(‘A‘,NULL,‘B‘) 接收一个连接字符串输入并主动替换null 为‘’字符串 结果就是 AB

2.SUBSTRING函数

它可以从字符串提取一个子字符串

和c# 截取字符串用法一样 不过下标不是零开始

SELECT SUBSTRING(abcde, 1, 3); -- ‘abc‘

如果第三个参数超过字符长度也没事 它会默认去整个字符串长度

3.LEFT和RIGHT函数

其实SUBSTRING 函数简化版

SELECT RIGHT(abcde, 3); -- ‘cde‘

SELECT LEFT(Nabcde‘,3); -- ‘abc‘

4.LEN和DATALENGTH函数

SELECT LEN(Nabcde); -- 5

SELECT DATALENGTH(Nabcde); -- 10

LEN 返回字符数  DATALENGTH 返回字节数   LEN会删除尾随空格 但 DATALENGTH  不会

5.CHARINDEX 函数

SELECT CHARINDEX( ,Itzik Ben-Gan); -- 6

返回空格在 后面字符串第一次出现位置

6.PATINDEX 函数

模糊查询条件 在字符串中出现的位置

SELECT PATINDEX(%[0-9]%, abcd123efgh); -- 5

找寻 数字在后面字符串第一次出现的位置

7.REPLACE函数

SELECT REPLACE(1-a 2-b, -, :); -- ‘1:a 2:b‘

替换函数 也可以用来计算字符串中字符出现的次数

SELECT empid, lastname,
  LEN(lastname) - LEN(REPLACE(lastname, e, ‘‘)) AS numoccur
FROM HR.Employees;

获取字符串中E出现的次数  当前长度减替换后的长度

8.REPLICATE函数

SELECT REPLICATE(abc, 3); -- ‘abcabcabc‘

复制字符串  通常可用它来生成订单号 例如

SELECT supplierid,
  RIGHT(REPLICATE(0, 9) + CAST(supplierid AS VARCHAR(10)),
        10) AS strsupplierid
FROM Production.Suppliers;

技术分享图片

 

复制9个0 对id类型统一后从右取10个字符   可以根据需求定制类型

9.STUFF 函数

允许从字符串中移除指定数量字符串 并插入新子字符串

SELECT STUFF(xyz, 2, 1, abc); -- ‘xabcz‘

第一个参数 字符串 第二个参数 开始移除位置    第三个参数 移除几个字符   第三个参数 移除的字符要替换成什么字符

10.UPPER和LOWER 函数

SELECT UPPER(Itzik Ben-Gan); -- ‘ITZIK BEN-GAN‘

SELECT LOWER(Itzik Ben-Gan); -- ‘itzik ben-gan‘

大小写互转

11.RTRIM和LTRIM 函数

SELECT RTRIM(LTRIM(   abc   )); -- ‘abc‘

它们分别是删除 前空格 和后空格

12.FORMAT 函数

类似于字符串格式拼接

SELECT FORMAT(1759, d10); -- ‘0000001759‘
SELECT FORMAT(1759, 0000000000); -- ‘0000001759‘

自定义格式化字符串输入 可以有多种选择  官方参考链接 https://go.microsoft.com/fwlink/?LinkId=211776

13.LIKE 谓词函数

SELECT empid, lastname
FROM HR.Employees
WHERE lastname LIKE ND%;

返回开头是D的用户

SELECT empid, lastname
FROM HR.Employees
WHERE lastname LIKE N_e%;

返回开头第二个是e的用户

SELECT empid, lastname
FROM HR.Employees
WHERE lastname LIKE N[ABC]%;

返回开头是A或B或C 的用户

SELECT empid, lastname
FROM HR.Employees
WHERE lastname LIKE N[A-E]%;

返回开头是A到E 的用户

SELECT empid, lastname
FROM HR.Employees
WHERE lastname LIKE N[^A-E]%;

返回不是A到E开头的用户  如果通配符用特殊需要转译 的用 [ ] 包起来 %[%]%

 

以上是关于T-SQL:函数大全的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段3——url大全

VSCode自定义代码片段3——url大全

VSCode自定义代码片段——cli的终端命令大全

VSCode自定义代码片段4——cli的终端命令大全

sqlserver函数大全

SQL函数说明大全