• 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(N'abcde',3); -- 'abc'

    4.LEN和DATALENGTH函数

    SELECT LEN(N'abcde'); -- 5
    
    SELECT DATALENGTH(N'abcde'); -- 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 N'D%';

    返回开头是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开头的用户  如果通配符用特殊需要转译 的用 [ ] 包起来 %[%]%

  • 相关阅读:
    jsp第六周作业
    jsp第四周作业
    jsp第一周周作业
    第一次软件测试课堂练习
    4.11jsp
    第六周作业
    第三周jsp作业
    3.10 jsp作业
    3.4软件测试
    JSP第六周作业
  • 原文地址:https://www.cnblogs.com/feizianquan/p/9349832.html
Copyright © 2020-2023  润新知