sql server 字符串函数集合

1.    ASCII和CHAR

ASCII(character_expression): 返回最左端字符的 ASCII 代码值

CHAR(integer_expression):返回相应字符根据ascii码

举例:
Select ascii(‘www.fangshanzi.com’);
119
Select char(119);
w

2.    UNICODE和NCHAR

UNICODE(ncharacter_expression)

按照 Unicode 标准的定义,返回输入表达式的第一个字符的整数值。UNICODE()函数是ASCII()的Unicode等价函数

NCHAR(integer_expression):返回响应字符根据unicode码

举例:
Select unicode(‘www.fangshanzi.com’);
119
Select nchar(119);
w

3.    LOWER和UPPER

LOWER(character_expression):以sql server字符串中的字符小写返回

UPPER(character_expression):以sql server字符串中的字符大写返回

举例:
Select lower(‘WWW.fangshanzi.com’);
www.fangshanzi.com
Select upper(‘WWW.fangshanzi.com’);
WWW.FANGSHANZI.COM

4.    LTRIM和RTRIM

LTRIM(character_expression):截断左端英文空格

RTRIM(character_expression):截断右端英文空格

举例:
Select ltrim(‘   ”WWW.fangshanzi.com   ”’);
‘WWW.fangshanzi.com   ‘
Select rtrim(”’   WWW.fangshanzi.com”   ‘);
‘   WWW.fangshanzi.com’

5.    LEN

LEN(string_expression):返回字符(不是字节)个数,不包含尾随的英文空格

举例:
Select len(‘WWW.fangshanzi.com’);
18

6.    REVERSE

REVERSE(character_expression):颠倒sql server字符串
举例:
Select REVERSE(‘WWW.fangshanzi.com’);    moc.iznahsgnaf.WWW

7.    REPLICATE和SPACE

REPLICATE(character_expression, integer_expression) 重复字符串

SPACE(integer_expression) 重复 integer_expression 个空格

举例:
Select replicate(‘WWW’,3);
WWWWWWWWW
Select SPACE(8);

8.    SOUNDEX

SOUNDEX(character_expression)

根据sql server字符串情况,返回一个特定的四个长度的字符串,可用来查找发音相似的字符串但SOUNDEX函数对数字和汉字均只返回0值,比较中忽略元音。使用非字母字符来终止比较。此函数总会返回值

DIFFERENCE(character_expression, character_expression)

比较两个表达式的 SOUNEX 返回值有几个字符不同,返回值[0-4]
–0 两个SOUNDEX 函数返回值的第一个字符不同
–1 两个SOUNDEX 函数返回值的第一个字符相同
–2 两个SOUNDEX 函数返回值的第一二个字符相同
–3 两个SOUNDEX 函数返回值的第一二三个字符相同
–4 两个SOUNDEX 函数返回值完全相同

举例:
Select soundex(‘WWW.fangshanzi.com’);
0000
SELECT SOUNDEX (‘fangshanzi’), SOUNDEX (‘salleyzhao’);
F624  S100
SELECT DIFFERENCE(‘fangshanzi’, ‘fangshanzibb’);
4
SELECT DIFFERENCE(‘fangshanzi’, ‘fangzhouzi’);
3
SELECT DIFFERENCE(‘fangshanzi’, ‘fangshangzi’);
4

9.    STR和QUOTENAME

STR(float_expression[, length[, decimal]])

返回由数字转换成的字符串值,STR 的长度和小数参数(如果提供)应该是正数。默认长度是 10。在默认情况下或者小数参数为 0 时,数字四舍五入为整数。指定长度应该大于或等于小数点前面的数字加上数字符号(如果有的话)的长度:表达式的整数部分超过 STR 中指定的长度,STR将为指定的长度返回

QUOTENAME(character_string[, quote_character]):返回带有分隔符的 UNICODE 字符串

举例:
SELECT STR(1237.485, 6, 2);
1237.5
SELECT STR(17.485, 6, 2);
17.48
SELECT STR(17.485);
17
SELECT STR(17.585);
18
Select QUOTENAME(‘fang’);
[fang]
Select QUOTENAME(‘fang’,”);
[fang]
Select QUOTENAME(‘fang’,””);
‘fang’

10.    LEFT和RIGHT

Left(character _expression, integer_expression):截取从字符串左边开始N个字符

right(character _expression, integer_expression):截取从字符串右边开始N个字符

举例:
Select left(‘WWW.fangshanzi.com’,5);
WWW.f
Select right(‘WWW.fangshanzi.com’,5);
i.com

11.    Substring和patindex和charindex

SUBSTRING ( expression , start , length ) :返回字符串里从start位置开始的length个字符。

expression:字符串、二进制字符串、text、image、列或包含列的表达式

start:整数,指定子串的开始位置(SQl中”1″表示字串的第一个字符,而.NET中”0″表示第一个)

length:整数,指定子串的长度(要返回的字符数或字节数)

PATINDEX ( ‘%pattern%’ , expression ):返回指定表达式中某模式第一次出现的起始位置;

如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。

pattern:字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数据类型类别的表达式

expression:表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别

charindex(expression2, expression):返回在字串expression中expression2的开始位置;CHARINDEX函数搜索字符串时,不区分大小写

函数PATINDEX与CHARINDEX区别在于:前者可以参数一些参数,增加查询的功能

举例:
Select substring(‘WWW.fangshanzi.com’,5,4);
fang
Select charindex(‘fang’,’WWW.fangshanzi.com’);
5
Select charindex(‘f’,’WWW.fangshanzi.com’);
5
Select substring(‘WWW.fangshanzi.com’,charindex(‘f’,’WWW.fangshanzi.com’),10);
fangshanzi
Select patindex(‘%f%’,’WWW.fangshanzi.com’);
5
Select substring(‘WWW.fangshanzi.com’,patindex(‘%f%’,’WWW.fangshanzi.com’),10);
fangshanzi

12.    STUFF 和REPLACE

STUFF(character_expression, start, length, character_expression)

按 start、length 删除第一个表达式的内容并在 start 位置插入第四个表达式

REPLACE(character _expression,str_a,str_b):替换character _expression中的str_a为str_b;

函数STUFF与REPLACE区别在于:前者可以指定替换范围,而后者则是全部范围内替换

举例:
Select stuff(‘www.fangshanzi.com’,5,10,’salleyzhao’);
www.salleyzhao.com
Select replace(‘www.fangshanzi.com’,’fangshanzi’,’salleyzhao’);
www.salleyzhao.com

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注