例说SQL SERVER 2008内置函数之字符串函数(一)

2014-11-24 10:28:37 · 作者: · 浏览: 2

1 LTRIM与RTRIM

>>SQL查询实例

SELECT LTRIM('     I am 20 years old.     ') AS Result;
SELECT RTRIM('     I am 20 years old.     ') AS Result;

>>查询执行结果

\

>>函数说明

功能:

LTRIM函数返回删除了前导空格之后的字符表达式;RTRIM函数返回删除了尾随空格之后的字符表达式。

入参与返回值:

LTRIM与RTRIM函数的输入参数(实例中的' I am 20 years old. ')都是字符或者二进制数据的表达式,可以是变量,常量或者列。LTRIM与RTRIM函数的返回值都是varchar 或nvarchar类型的数据。

2 ASCII与CHAR

>>SQL查询实例

SELECT ASCII('A') AS Result;
SELECT CHAR(65) AS Result;

>>查询执行结果

\

>>函数说明

功能:

ASCII函数返回字符的ASCII代码值;CHAR函数将 ASCII 代码值转换为字符。

入参与返回值:

ASCII函数的入参为char类型表达式(实例中的'A'),返回值为int型的ASCII代码;ASCII函数的入参也可以是varchar类型的表达式,此时返回表达式中最左侧的字符的 ASCII 代码值。CHAR函数的入参(实例中的65)为0-255之间的整数,返回值为char(1)类型数据;当入参不在0-255之间时返回NULL。

3 UNICODE与NCHAR

>>SQL查询实例

SELECT UNICODE('α') AS Result;
SELECT NCHAR(945) AS Result;

>>查询执行结果

\

>>函数说明

功能:

UNICODE、NCHAR函数分别是ASCII()、CHAR()函数的Unicode等价函数。

入参及返回值:

UNICODE函数接收nchar 或 nvarchar 表达式(实例中的'α'),返回int型数据;CHAR()函数接收int型数据(实例中的945),返回nchar 或 nvarchar 类型数据。

4 SPACE

>>SQL查询实例

SELECT 'HI,'+SPACE(5)+'YL!' AS Result;

>>查询执行结果

\

>>函数说明

功能:

返回由多个空格组成的字符串。

入参与返回值:

入参(实例中的5)为正整数,指示空格的个数;返回值为varchar类型数据。

注意:

当传入参数为负数时,返回NULL;当传入参数为空字符(串)或者含若干空格的字符串时,返回值是空串;当传入非空字符(串)时函数无法执行。

SELECT 'HI,'+SPACE(-1)+'YL!' AS Result;

\

SELECT 'HI,'+SPACE('')+'YL!' AS Result;

SELECT 'HI,'+SPACE('     ')+'YL!' AS Result;

\

5 CHARINDEX与PATINDEX

>>SQL查询实例

SELECT CHARINDEX('AB','This is AB,That is also AB.') AS Result;
SELECT CHARINDEX('AB','This is AB,That is also AB.',10) AS Result;
SELECT PATINDEX('%A%','This is AB,That is also AB.') AS Result;

>>查询执行结果

\

>>函数说明

功能:

CHARINDEX函数在一个表达式str1中搜索另一个表达式str2并返回其起始位置;PATINDEX函数与CHARINDEX函数功能类似,也是在一个表达式中去搜索另一个表达式并返回其起始位置,只是增加了对通配符%的支持,及要查找的表达式必须是“%pattern%”的形式(这里的%不能省略)。

入参及返回值:

CHARINDEX函数含有3个入参; 的第一个入参为要查找的表达式str2(实例中的'AB');第二个入参为被搜索的表达式str1(实例中的'This is AB,That is also AB.');第三个入参为搜索的起始位置(实例中的10),也可以不指定,不指定时从头开始查找。 PATINDEX函数只含有两个参数,其意义与CHARINDEX的前两个参数的意义相同;两者的返回值均为表达式b的起始位置,为int型数据。

6 QUOTENAME

>>SQL查询实例

SELECT QUOTENAME('abcdef') AS Result;
SELECT QUOTENAME('abcdef','"') AS Result;
SELECT QUOTENAME('abcdef','''') AS Result;

>>查询执行结果

\

>>函数说明

功能:

QUOTENAME函数在字符串的前后加上指定的分隔符号(未指定时就加上默认的方括号[])。

入参及返回值:

QUOTENAME函数的第一个参数为Unicode字符组成的字符串;第二个参数为用作分隔符的单字符字符串,可以是单引号 (')、方括号([]) 或者英文双引号 (")。返回值为nvarchar(258)类型数据。

7 STR

>>SQL查询实例

SELECT STR(1234.567890) AS Result;
SELECT STR(1234.567890,6,2) AS Result;

>>查询执行结果

\

>>函数说明

功能:

将数字数据转换成字符数据。

入参及返回值:

第一个参数为需要转换的数字数据(float)(实例中的1234.567890);第二个参数为转换成的字符数据的总长度(实例中的6),默认值为10;第三个参数为小数点右边的小数位数(实例中的2),必须小于等于16。 后两个参数可以不指定,第二个参数不指定时,取默认值取10,第三个参数不指定时,数字舍入为整数。 返回值为varchar类型数据。

8 SOUNDEX与DIFFERENCE

>>SQL查询实例

SELECT	SOUNDEX('Red') AS Result;
SELECT SOUNDEX('Red') AS Soundex1, SOUNDEX('Read') AS Soundex2, DIFFERENCE('Red','Read') AS DiffResult;

>>查询执行结果

\

>>函数说明

功能:

SOUNDEX函数返回一个由四个字符组成的代码用于评估两个字符串的相似性。 (关于SOUNDEX代码大家自己去研究吧) 而DIFFERENCE函数返回一个整数值,指示两个字符表达式的 SOUNDEX 值之间的差异。

入参及返回值:

SOUNDEX函数接收字符数据组成的表达式(实例中的'Red'),可以是常量、变量或者列,返回varchar类型数据;DIFFERENCE函数接收两个字符数据组成的表达式(实例中的'Red'与'Read'),返回int型数据表示两者之间的差异程度,返回的值从 0 到 4 不等。 0 表示几乎不同或完全不同;4 表示几乎相同或完全相同。

9 REPLACE

>>SQL查询实例

SELECT REPLACE('abcdefgh