SQL 字符操作

    --ltrim(string) 第一位字符为空格算起连续空格清除
    select  'OK' + ltrim('     左     右     ') + 'OK'

    --rtrim(string) 最后一位字符为空格算起往左边连续空格清除
        select  'OK' + rtrim('     左     右     ') + 'OK'

    --replace(string,'查找string中字符', '替换查找的字符')
    select  'OK' + replace('     左     右     ','左','替换') + 'OK'

    --Left(string,正整数)  返回字符串中从左边开始指定个数的字符。
    select left('ABCDEF',3)     --ABC

    --Right(string,正整数)返回字符串中从右边开始指定个数的字符
    select Right('ABCDEF',3)   --DEF

    --Len(string)  返回指定字符串表达式的字符数,其中不包含尾随空格。
    select LEN('123456789')     --9
    select LEN('123456789   ')  --9
    select LEN('   123456789')  --12
    select LEN('1234   56789')  --12

    --Lower('大写字母') 将大写字符数据转换为小写字符数据后返回字符表达式。
    select Lower('AB')     --ab
--Upper('小写字母')  返回小写字符数据转换为大写的字符表达式。
select Upper('abc') --ABC

--定义字符串类型
declare 
    @_char char(15) = 'ABCDEF'
    ,@_nchar nchar(15) = '我是谁,做什么'
    ,@_varchar varchar(15)= 'ABCDEF'
    ,@_nvarchar nvarchar(15)  = '我是谁,做什么'
select 
        replace(@_char ,' ','*') as 'char'                  --ABCDEF*********
        ,replace(@_nchar ,' ','*') as 'nchar'                 --我是谁,做什么********
        ,replace(@_nvarchar ,' ','*') as 'nvarchar'   --我是谁,做什么
        ,replace(@_varchar ,' ','*') as 'varchar'         --ABCDEF

--返回指定表达式中某模式第一次出现的起始位置;
--如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。
select patindex('%abb%','abcaabbeeabb')  --返回5
select patindex('abb%','abcaabbeeabb')      --返回0
select patindex('%abb','abcaabbeeabb')    --返回10
select patindex('%abc%','abcaabbeeabb') --返回1   

--Replicate 以指定的次数重复字符串值.
    select Replicate('ABC',2) --ABCABC
    select Replicate('ABC',0) --空白
    select Replicate('ABC',-1) --NULL

    --Reverse返回字符串值的逆向值。
     select Reverse('FEDBCA') --ACBDEF 

--Space()返回由重复的空格组成的字符串。
select 'A'+space(10)+ 'A' --A          A

--将数值型转换成指定长度的字符串
/*
第一个参数是要转换的数值
第二个参数是转换後的总长度(含小数点,正负号)
第三个参数为小数位
*/ --小数带四舍五入
 select 'A' + STR(12345.633,8,0) -- A   12346

--STUFF 函数将字符串插入另一字符串。它在第一个字符串中从开始位置删除指定长度的字符;
--      然后将第二个字符串插入第一个字符串的开始位置
select Stuff('ABCD',2,2,'123')  --A123D
    --字符串是提取字符
    --第二位指  从左算起第2位 B
    --第三位指 从B开始算起提取3个字符
    select Substring('ABCDEF',2,3)  --BCD