--【SQLServer 2012 字符串函数】
--1.【ASCII】返回字符表达式中最左侧的字符的 ASCII 代码值
SELECT ASCII('A'),ASCII(' '),ASCII('@'),ASCII('黄')
--结果:65 32 64 187
--2.【CHAR】将 int ASCII 代码转换为字符,0 到 255 之间的整数。如果整数表达式不在此范围内,则返回 NULL
SELECT CHAR(65),CHAR(32),CHAR(64),CHAR(187)
--结果:A @ NULL
--3.【QUOTENAME】返回带有分隔符的 Unicode 字符串,分隔符的加入可使输入的字符串成为有效的 SQL Server 分隔标识符
SELECT QUOTENAME('COLUMN') --[COLUMN]
--4.【CONCAT】返回SQL Server 2012 作为串联两个或更多字符串值的结果的字符串
SELECT CONCAT('CONCAT ', '练习 ', ',字符串连接' )
--结果:CONCAT练习,字符串连接
--5.【DIFFERENCE】返回一个整数值,指示两个字符表达式的 SOUNDEX 值之间的差异
--返回的整数是 SOUNDEX 值中相同字符的个数。 返回的值从 0 到 4 不等:0 表示几乎不同或完全不同,4 表示几乎相同或完全相同
SELECT DIFFERENCE('Green','Greene'),DIFFERENCE('Blotchet-Halls', 'Greene')
--结果:4 1
--6.【FORMAT】返回 SQL Server 2012 中以指定的格式和可选的区域性格式化的值。一般的数据类型转换用CAST或CONVERT
SELECT FORMAT( GETDATE(), 'dd/MM/yyyy', 'en-US' ),FORMAT(123456789,'###-##-####')
--7.【LEFT】返回字符串中从左边开始指定个数的字符
SELECT LEFT('123456789', 5) --12345
--8.【RIGHT】返回字符串中从右边开始指定个数的字符
SELECT RIGHT('123456789', 5) --56789
--9.【LTRIM】返回删除了前导空格之后的字符表达式
SELECT LTRIM(' 1234 789 ') --[1234 789 ]
--10.【RTRIM】截断所有尾随空格后返回一个字符串
SELECT RTRIM(' 1234 789 ') --[ 1234 789]
--11.【LEN】返回指定字符串表达式的字符数,其中不包含尾随空格
SELECT LEN('123456789'),LEN(' 123456789'),LEN('123456789 ')
--结果:9 11 9
--12.【LOWER】将大写字符数据转换为小写字符数据后返回字符表达式
SELECT LOWER('SQL Server') --sql server
--13.【UPPER】将大写字符数据转换为小写字符数据后返回字符表达式
SELECT UPPER('SQL Server') --SQL SERVER
--14.【NCHAR】根据 Unicode 标准的定义,返回具有指定整数代码的 Unicode 字符,从 0 到 65535(0 到 0xFFFF)
SELECT NCHAR(65)+NCHAR(97)+NCHAR(123) --Aa{
--15.【CHARINDEX】在一个表达式中搜索另一个表达式并返回其起始位置(可判断一个字符串是否在另一个字符串中)
select CHARINDEX('456','123456789') --4
select CHARINDEX('1','235694526') --0
select CHARINDEX('1','12314510215985') --1
select CHARINDEX('1','12314510215985',8) --10
--16.【PATINDEX】返回模式在指定表达式中第一次出现的起始位置,找不到则返回0。类似 like 和 charindex 的用法
select PATINDEX('BC','BC') --1
select PATINDEX('BC','ABC') --0
select PATINDEX('%BC','ABC') --2
--17.【SOUNDEX】返回一个由四个字符组成的代码 (SOUNDEX),用于评估两个字符串的相似性.区分排序规则。
SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') --S252 S200
SELECT SOUNDEX('Father'), SOUNDEX ('Brother')--F241 B124
--18.【REPLACE】用另一个字符串值替换出现的所有指定字符串值。不区分大小写
select REPLACE('ABCDEFG','B','b') --AbCDEFG
select REPLACE('ABCDEFGBc','BC','*') --A*DEFG*
--19.【REPLICATE】以指定的次数重复字符串值
select REPLICATE('0',10) --0000000000
select REPLICATE('ab',3) --ababab
--20.【SPACE】返回指定重复空格的字符串
SELECT '1'+ SPACE(7) + LTRIM('9') --[1 9]
--21.【REVERSE】返回字符串值的逆序
SELECT REVERSE('0123456789')
--22.【SUBSTRING】返回 SQL Server 2012 中的字符、二进制、文本或图像表达式的一部分
SELECT SUBSTRING('123456789',3,3) --345
--23.【STUFF】返回 SQL Server 2012 中的字符、二进制、文本或图像表达式的一部分
--STUFF(character_expression , start , length , replaceWith_expression )
select STUFF ( 'ABCDEFG' , 2 , 0 ,'-' ) --A-BCDEFG
select STUFF ( 'ABCDEFG' , 2 , 1 ,'b' ) --AbCDEFG
select STUFF ( 'ABCDEFG' , 2 , 2 ,'*' ) --A*DEFG
--24.【UNICODE】按照 Unicode 标准的定义,返回输入表达式的第一个字符的整数值
SELECT UNICODE(N'65') --345