--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
文章题目:SQL字符操作
文章起源:
http://cxhlcq.com/article/ishdhh.html