美文网首页
SQL SERVER 常用字符串操作函数,自定义函数

SQL SERVER 常用字符串操作函数,自定义函数

作者: NewForMe | 来源:发表于2019-08-20 23:59 被阅读0次

    今天介绍三个在数据库中常用操作字符串的函数,配合自定义函数来使用效果更佳。

    1、left() ,right(),substring()

    LEFT (<character_expression>, <integer_expression>)
    返回character_expression 左起 integer_expression 个字符。

    RIGHT(<character_expression>, <integer_expression>)
    返回character_expression 右起 integer_expression 个字符。

    SUBSTRING(<character_expression>, <integer_expression1>,<integer_expression2>)
    返回character_expression 从第 integer_expression1 个字符开始,截取integer_expression2个字符。
    例:

    /******  Sql Server中截取字符串的常用方法  ******/
    
    --1、LEFT()方法---
    --函数说明---
    --1)语法:LEFT(character,integer)  
    --2)介绍:参数1:要截取的字符串,参数2:截取字符个数
    --3)使用:
    --返回从字符串左边开始指定个数的字符--
    select LEFT('SqlServer_2008',3)
    --4)返回:Sql
    
    --1、RIGHT()方法---
    -- right()函数说明---
    --1)语法:RIGHT(character,integer)  
    --2)介绍:参数1:要截取的字符串,参数2:截取字符个数
    --3)使用:
    --返回从字符串右边开始指定个数的字符--
    select LEFT('SqlServer_2008',4)
    --4)返回:2008
    
    --1、SUBSTRING()方法---
    -- substring()函数说明---
    --1)语法:SUBSTRING(character,start,length)  
    --2)介绍:参数1:要截取的字符串,参数2:开始截取的下标,参数3:截取的字符长度
    --3)使用:
    --返回从字符串中间的字符--
    select SUBSTRING('SqlServer_2008',4,6)
    --4)返回:Server
    

    2.charindex()

    CHARINDEX (<’substring_expression’>, <expression>)
    返回字符串中某个指定的子串出现的开始位置。

    其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。
    此函数不能用于TEXT 和IMAGE 数据类型。
    例:

    select charindex('cd','abcdefg') --3
    select charindex('ac','abcdefg') --0
    

    3.stuff()

    STUFF ( character_expression , start , length , replaceWith_expression )
    character_expression 是欲处理的字符串;
    start 是删除字符的开始位置,字符串是从1开始,如果要从第二个字符删除,则start为2;
    length欲删除的字符的长度,如从第二个字符开始删除,删除三个字符,则length为2;
    character_expression2 想要用来替换删除字符串的字符串(有点拗口,但是不难理解);

    例:

    select stuff('abcde',2,3,'mmmm')
    -- ammme
    --通过在第一个字符串 (abcde) 中删除从第二个位置(字符 b)开始的三个字符,
    --然后在删除的起始位置插入第二个字符串,创建并返回一个字符串。
    

    4.自定义函数

    下面自定义函数作用是结合使用STUFF函数,根据uniqueidentifier的规则:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx将使用过C#,Guid.NewGuid().ToString("N")格式化的GUID,在数据库直接恢复到原来的格式。

    go
    create function Func_ConnectionStr  
    (  
      @str varchar(100)  --要处理的字符串 
    )  
    returns varchar(100)  
    as  
    begin  
      declare @result varchar(100) --返回结果  
      
      set @result = stuff(@str,9,0,'-')
      set @result = stuff(@result,14,0,'-') 
      set @result = stuff(@result,19,0,'-') 
      set @result = stuff(@result,24,0,'-') 
         
      return  @result
    end
    go
    
    --使用
    select [dbo].[Func_ConnectionStr]('001449860ac64d6b89e3918afe439f04')
    --输出
    00144986-0ac6-4d6b-89e3-918afe439f04
    

    相关文章

      网友评论

          本文标题:SQL SERVER 常用字符串操作函数,自定义函数

          本文链接:https://www.haomeiwen.com/subject/vjkvsctx.html