字符串函数简介
字符串函数对N进制数据、字符串和表达式执行不同的运算。此类函数作用于char、varchar、binary和varbinary数据类型以及可以隐式转换为char或varchar的数据类型。通常字符串函数可以用在sql语句的表达式中。
字符串函数如表1所示。
表1 字符串函数
函 数 名 称 |
说 明 描 述 |
ASCII |
返回字符表达式最左端字符的ASCII代码值 |
CHAR |
将int ASCII代码转换为字符值 |
CHARINDEX |
返回字符串中指定表达式的起始位置 |
DIFFERENCE |
以整数返回两个字符表达式的SOUNDEX值之差 |
LEFT |
从左边开始,取得字符串左边指定个数的字符 |
LEN |
返回指定字符串的字符(而不是字节)个数 |
LOWER |
将指定的字符转换为小写 |
LTRIM |
清除指定字符串左边的空格 |
NCHAR |
用给定的整数代码返回Unicode字符 |
PATINDEX |
返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零 |
REPLACE |
将指定的字符串替换为另一指定的字符串 |
QUOTENAME |
返回带有分隔符的 Unicode 字符串,分隔符的加入可使输入的字符串成为有效的sql Server分隔标识符 |
REPLICATE |
以指定的次数重复字符表达式 |
REVERSE |
返回字符表达式的反转 |
RIGHT |
从右边开始,取得字符串右边指定个数的字符 |
RTRIM |
清除指定字符串右边的空格 |
SOUNDEX |
返回由四个字符组成的代码(SOUNDEX)以评估两个字符串的相似性 |
SPACE |
返回由重复的空格组成的字符串 |
STR |
返回由数字数据转换来的字符数据 |
STUFF |
删除指定长度的字符,并在指定的起始点插入字符 |
SUBSTRING |
返回指定个数的字符 |
UNICODE |
返回输入表达式的第一个字符的整数值 |
UPPER |
将指定的字符转换为大写 |
使用LOWER(转换小写)函数
LOWER函数用于将指定的字符转换为小写。
语法:
LOWER (character_expression)
参数说明:
l character_expression:字符或二进制数据表达式。character_expression可以是常量、变量或列。
示例:
使用LOWER函数将数据字段中的数据转换为小写。程序运行结果如图1所示。
sql语句如下:
use pubs
SELECT TOP 5 job_desc FROM jobs
SELECT TOP 5 LOWER(job_desc) AS "转换为小写" FROM jobs
-----------------------------------
使用UPPER(转换大写)函数
UPPER函数用于将指定的字符转换为大写。
语法:
UPPER (character_expression)
参数说明:
l character_expression:由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。
sql语句如下:
use pubs
SELECT TOP 5 job_desc FROM jobs
SELECT TOP 5 UPPER(job_desc) AS "转换为大写" FROM jobs
使用NCHAR函数和UNICODE函数
1.NCHAR函数
语法:
NCHAR (integer_expression)
参数说明:
l integer_expression:限于0~65535之间的所有正整数。如果参数超出该范围,则返回NULL。
2.UNICODE函数
语法:
UNICODE ('ncharacter_expression')
参数说明:
l ncharacter_expression:nchar或nvarchar类型的表达式。
下面使用NCHAR函数和UNICODE函数返回指定字符的UNICODE值
sql语句如下:
DECLARE @nstring nchar(8)
SET @nstring = N'øÅbenhavn'
SELECT UNICODE(LEFT(@nstring,1)) AS "UNICODE值",
NCHAR(UNICODE(LEFT(@nstring,1))) AS "字符"
使用PATINDEX函数
PATINDEX函数用于返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。
语法:
PATINDEX (%pattern%,expression)
参数说明:
l %pattern%:一个字符串,在pattern之前和之后必须有“%”字符。pattern为短字符数据类型类别的表达式。
l expression:表达式,通常为要在其中搜索指定模式的列,expression为字符串数据类型类别。
本例将使用PATINDEX函数在“job_desc”字段中查找字符串为“Job”的起始位置。
说明:在数据字段“job_desc”中查找“Job”数据,如果查找成功则返回该数据第一次出现的位置。
sql语句如下:
USE PUBS
SELECT TOP 5 * FROM jobs
SELECT PATINDEX('%Job%',job_desc) AS "起始位置" FROM jobs
Where job_id = 1
使用REPLACE(替换字符串)函数
REPLACE函数将字符串中的子字符串替换为指定字符串。
语法:
REPLACE (string_expression1,string_expression2,string_expression3)
参数说明:
l string_expression1:待搜索的字符串表达式。
l string_expression2:待查找的字符串表达式。
l string_expression3:替换用的字符串表达式。
示例:
使用REPLACE函数替换指定的字符串。
sql语句如下:
SELECT REPLACE('sql SERVER','ER','AA') AS 替换结果
说明:示例将会在字符串“sql SERVER”中查找替换的字符串“ER”,当查找成功后,并将“sql SERVER”字符串中的所有包含“ER”的字符串替换为“AA”。
使用QUOTENAME(返回带有分隔符的Unicode字符串)函数
QUOTENAME函数用于返回带有分隔符的Unicode字符串,分隔符的加入可使输入的字符串成为有效的sql Server分隔标识符。
语法:
QUOTENAME ('character_string' [,'quote_character' ])
参数说明:
l character_string:Unicode字符数据字符串。
l quote_character:用作分隔符的单字符字符串。可以是单引号(‘’)、左括号( [])、右括号([] )或者双引号(“”)。
示例:
使用QUOTENAME返回带有分隔符的Unicode字符串。
sql语句如下:
SELECT QUOTENAME('abc[]def') AS 返回结果
使用REPLICATE(以指定的次数重复字符表达式)函数
语法:
REPLICATE (character_expression,integer_expression)
参数说明:
l character_expression:由字符数据组成的字母数字表达式。
l integer_expression:正整数,指定重复次数,如果该参数为负数,则返回空字符串。
示例:
sql语句如下:
USE 销售管理系统
SELECT REPLICATE(操作员姓名,2) AS 重复输出
FROM 操作员信息表