zoukankan      html  css  js  c++  java
  • 字符串函数CHARINDEX,STUFF,PATINDEX,REPLICATE

     

    CHARINDEX 字符串查找

    CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )

            查找的字符,被搜索的字符,搜索开始  --如果start_location未指定、为负值或零 (0) 值,则搜索从expressionToSearch的开头开始

    返回的起始位置是从 1 开始的,而不是从 0 开始的。返回值是start_location +包含start_location 这个的,往后面查询的索引位置             

    SELECT CHARINDEX('is', 'this is a string', 4);//返回是6=4+2  
                    ↑12
                  123456
    //也可以算是从头计算,但是到搜索位置才开始匹配查找                     

    SELECT CHARINDEX ( 'TEST', 'This is a Test' COLLATE Latin1_General_CS_AS); //执行区分大小写的搜索

    SELECT CHARINDEX ( 'TEST', 'This is a Test' COLLATE Latin1_General_CI_AS);//忽略大小写的搜索

    STUFF  字符串插入

    STUFF ( character_expression , start , length , replaceWith_expression )

        原始字符串,指定开始删除和插入的位置,要删除的字符数,替换的字符串

    下面的示例返回通过从第一个字符串 中删除三个字符abcdef、从位置2、 at开始b并在删除点插入第二个字符串而创建的字符串。
    SELECT STUFF('abcdef', 2, 3, 'ijklmn'); //结果aijklmnef 

    CHAR() 将ASCII 转换为对应的值

    SELECT CHAR(65)//=A

    ASCII () 将ASCII字符转换为 数字

    SELECT ASCII('A')//=65

    PATINDEX  正则表达式匹配字符串

    SELECT position = PATINDEX('%[^ 0-9A-Za-z]%', 'Please ensure the door is locked!'); --使用[^] 字符串运算符来查找不是数字​​、字母或空格的字符的位置

    REPLICATE 将字符串值重复指定的次数

    使用 REPLICATEDATALENGTH
    以下示例在将数字从数字数据类型转换为字符或 Unicode 时将数字左填充到指定的长度。
    
    IF EXISTS(SELECT name FROM sys.tables  
          WHERE name = 't1')  
       DROP TABLE t1;  
    GO  
    CREATE TABLE t1   
    (  
     c1 varchar(3),  
     c2 char(3)  
    );  
    GO  
    INSERT INTO t1 VALUES ('2', '2'), ('37', '37'),('597', '597');  
    GO  
    SELECT REPLICATE('0', 3 - DATALENGTH(c1)) + c1 AS 'Varchar Column',  
           REPLICATE('0', 3 - DATALENGTH(c2)) + c2 AS 'Char Column'  
    FROM t1;  
    GO  

    REVERSE返回字符串值的相反顺序

    参考:https://docs.microsoft.com/en-us/sql/t-sql/functions/stuff-transact-sql?view=sql-server-ver15

       https://docs.microsoft.com/en-us/sql/t-sql/functions/charindex-transact-sql?view=sql-server-ver15

  • 相关阅读:
    DM6437 dsp系列之启动过程全析(2)—AIS文件解析
    DreamWeaver文件保存时,提示"发生共享违例"问题的解决方法
    再谈cacheAsBitmap
    as3 updateAfterEvent的作用
    导致flash屏幕重绘的几种方式及避免重绘的方法
    盒子模型&position定位
    [工作问题总结]MyEclipse 打开项目
    三周的苦逼学习,这点文字只为沧海之一粟
    偷个空,写个博客——各种沟通各种纠结
    Arbitrage HDU
  • 原文地址:https://www.cnblogs.com/yyl001/p/15722773.html
Copyright © 2011-2022 走看看