SQL 常用字符处理函数

1、取子字符串
left()、right()、substring():取子字符串
2、charindex(): 返回字符串中指定表达式的开始位置
patindex(): 返回指定“表达式中模式”第一次出现的开始位置

select 参照字段1,参照表 , left(参照字段1,charindex('.',参照字段1)-1) 
from s_quickfieldslist
where 表名 = 'gd_js'
and 字段名称 = '部门编号'
and isnull(参照表,'') = ''
and charindex('.',参照字段1)>0
select patindex('%Hello%','WorldHello') 结果为:6

3、len() 、DataLength() 字符串长度

select Len('aaa')       -- 反回3

select Len('计算机')  --反回3

select DataLength('aaa' )  --反回3

select DataLength('计算机')  --反回6

4、lower()、upper():字符串转换为大、小写

 
  declare @cstring char(20)
 set @cstring = '  AbCdEf   '
 select lower(ltrim(rtrim( @cstring )))  -- 去除前后空格转小写 显示: abcdef
 select upper(ltrim(rtrim( @cstring )))  -- 去除前后空格转大写 显示:ABCDEF
 

5、 space():返回由重复的空格组成的字符串
replicate():以指定的次数重复字符串值

select replicate('abc', 4)  /* 结果为:abcabcabcabc */

replicate() 例子:

-- 生成10位字符型的序号 格式 ‘000000001’
declare @i int
declare @c varchar(20)
set @i = 1
set @c = CONVERT(varchar(20),@i)
if ((10-LEN(@c))>0)
begin
	select replicate('0', 10-LEN(@c))+ @c
end


6、replace():字符串替换

select replace('HelloWorld!','o','e')   /* 结果为:HelleWerld! */
  1. stuff():删除指定长度的字符,并在指定的起点处插入另一组字符
select stuff('abcdefgf', 2, 6, 'Hello-')    /* 结果为:aHello-f */    
select stuff('abcdefgf', 2, 6, 'Hello')        /* 结果为:aHellof */

8、unicode():返回输入表达式的第一个字符的整数值
ascii():得到字符的ASCII码
Char():得到一个与ASCII码数字对应的字符
nchar():返回返回具有指定的整数代码的 Unicode 字符

select unicode('a')        /* 结果为:97 */
select ascii('H')               /* 结果为:72 */
select Char(72)     /* 结果为:H */
select nchar(20013)        /* 结果为:'中' */

9、LTRIM() 、RTRIM() 去空格函数
LTRIM() 把字符串头部的空格去掉。
RTRIM() 把字符串尾部的空格去掉。

set @cstring = ltrim(rtrim( @cstring ))
set @cstring = upper(ltrim(rtrim(isnull(@cstring,'')))) --去前后空格,转大写

10、str():返回由数字数据转换来的字符数据

select str(1234.436, 3)         /* 结果为:'**';当表达式超出指定长度时返回'**' */
select len(str(1234.436, 3))     /* 结果为:3 */    
select str(123.436), len(str(123.436))              /* 结果为:'123', 10 */
select str(123.436, 6), len(str(123.436, 6))        /* 结果为:'123', 6 */
select str(123.436, 6, 1), len(str(123.436,6, 1))   /* 结果为:'123.4', 6 */

11、 stuff():删除指定长度的字符,并在指定的起点处插入另一组字符

select stuff('abcdefgf', 2, 6, 'Hello-')    /* 结果为:aHello-f */    
select stuff('abcdefgf', 2, 6, 'Hello')        /* 结果为:aHellof */

12、QUOTENAME()
返回被特定字符括起来的字符串。
QUOTENAME (<’character_expression’>[, quote_ character]) 其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。

 select QUOTENAME('表名','{}') --{表名}

13、数据类型转换函数
CAST()
CAST ( AS [ length ])

CONVERT()
CONVERT ([ length ], [, style])

		declare @cday char(2)

		-- 把天转换为字符型的天值
		select @cday = CONVERT(char(2),day(日期)) 
		    from gd_js_sum_total a inner join inserted i
			      on a.序号 = i.序号
			      
        set @cday = ltrim(rtrim( @cday )) -- 去除前后空格

14、判断两值之间

日期 BETWEEN  '2020-01-01' and  '2020-2-31'

你可能感兴趣的:(SQL)