SqlServer2008实例41字符串函数

目录

1   把字符值转化为ASCII以及把ASCII转回字符

2.返回整数和字符Unicode值

3.获取某个字符串在另一个字符串中的起始位置

4.使用通配符找到某个字符串在另一个字符串中的起始位置

5.检测字符串相似度

6.获取字符串最左和最右部分

7.检测字符串中的字符数或者字节数

8.把字符串的一部分替换成另一个字符串

9.把字符串填充到字符串中

10.在小写和大写之间进行转化

11.移除前导空格和尾部空格

12.重复一个表达式N次

13.重复一个空格N次

14.逆序输出表达式

15.返回表达式的一块


                     字符串函数

函数名描  述
ASCII和CHARASCII 函数接受字符表达式最左边的字符并返回ASCII码。CHAR函数把ASCII码的整数值转化为字符值
CHARINDEX和PATINDEXCHARINDEX函数用于返回一个字符串在另外一个字符串中的起始位置。PATINDEX函数和CHARINDEX相似,只是PATINDEX允许在指定要搜索的字符串的时候使用通配符
DIFFERENCE和SOUNDEXDIFFERENCE和SOUNDEX部用于计算发音相似的字符串。SOUNDEX为字符串分配一个4位数字码,DIFFERENCE计算两个字符串的SOUNDEX输出的相似级别
LEFT和RIGHTLEFT函数返回字符串从左起指定个字符数的一部分字符串。RIGHT甬数和LEFT函数相似,只是返同字符串从右起指定个字符数的一部分字符串
LEN和DATALENGTHLEN函数返回字符串表达式的字符个数,不包括最后一个字符后面的任何守格(尾部空格)。而DATALENGIH返同表达式使用的字节数
LOWER和UPPERLOWER函数返回字符表达式的小写形式,UPPER函数返回字符表达式的大写形式
LTRIM和RTRIMLTRIM函数移除前导空格,RTRIM函数移除尾部空格
NCHAR和UNICODEUNICODE函数返回字符嵌达式或输入表达式的第一个字符的Unicode整数值。NCHAR函数接受一个表示Umcode7符的整数值并把它转化为等价的字符
QUOTENAMEQUOTENAPIE函数为Unieode输入字符申增加分隔符,使之成为一个有效的分隔标识符
REPLACEREPLACE函数用一个新的字符串替换某个字符串中的一个指定字符串的所有示例
REPLICATEREPLICATE函数将某个字符表达式暮复指定次
REVERSEREVERSE函数接受一个字符表达式,并且以逆序的字符位置输出表达式
SPACESPACE函数根据为输入参数指定的整数值返回一个由重复空格组成的字符串
STRSTR函数把数字数据转化为字符数据
STUFFSTUFF函数删除指定长度的字符,并在指定的起始位置插入指定字符串
SUBSTRINGSUBSTRING函数返回某个表达式中定义的一块

1   把字符值转化为ASCII以及把ASCII转回字符

  ASCII函数接受字符表达式最左边的字符并返回ASCII码,而CHAR函数将代表ASCII的整数值转化为字符值。再次强调.ASCII只使用字符串的第一个字符。如果字符串是空或NULL,ASCII会返回NULL值(但单个空格值返回32)。

示例1   把字符转化为整数的ASCII值:

SELECT  ASCII('H'),ASCII('e'),ASCII('1'),ASCII('1'),ASCII('o')

示例2   使用CHAR函数来把整数值再转化回字符;

SELECT CHAR(72), CHAR(101), CHAR(108), CHAR(108), CHAR(111)

2.返回整数和字符Unicode值

    UNICODE函数返回字符或输入表达式的第一个字符的Unicode整数值。NCHAR函数接受一个表示Unicode字符的整数值,然后把它转化为等价的字符。如果你需要使用Unicode标准与外部处理程序交换数据,那么这些函数就很有用。

示例1   把单个字符转化为表示Unicode标准字符代码的整数值:

SELECT UNICODE('G'),UNICODE('o'), UNICODE('O'), UNICODE('d'),UNICODE('!')

示例2  把Unicode整数值转回字符:

SELECT NCHAR(71), NCHAR(111), NCHAR(111), NCHAR(100), NCHAR(33)

3.获取某个字符串在另一个字符串中的起始位置

    CHARINDEX函数用于返回某个字符串在另外一个字符串中的起始位置。语法:
    CHARINDEX(expression1 ,expresstion2 [.start location])
    expression1参数是要寻找的字符串。expression2参数是要在其中搜索的字符串。可选的startlocation值指示你希望开始查找的字符位置。
    示例:    查找某个字符串在另外一个字符串中的起始位置;

SELECT CHARINDEX('String to Find','7his is the bigger string to find something in.')

4.使用通配符找到某个字符串在另一个字符串中的起始位置

     PATINDEX函数和CHARINOEX类似,只是PATINOEX允许在要搜索的字符串中使用通配符。 PATINOEX语法:
    PATINDEX(‘¥pattern%;' ,expression)
    PATINDEX返回搜索模式第一次出现的起始位置,但是和CHARINDEX不同,它没有起始位置选项。

    示例,返回Person.Address表中AddressLinel包含单词Olive且地址以35开头的行:

USE adventureWorks
GO

SELECT AddressID,AddressLine1
FROM Person.Address
WHERE PATINDEX('[3][5]%olive%',AddressLIne1)>0

5.检测字符串相似度

    DIFFERENCE和SOUNDEX两个函数都是和字符串配合使用,用于根据英语发音规则来评价字符串的发音相似度。SOUNDEX为字符串分配4个数字的代码,然后DIFFERENCE计算两个字符串的SOUNDEX输出之间的相似级别。DIFFERENCE返同0到4的值,4表示最相近的匹配。
    示例1,识别发音相似的字符串——首先独立运算字符串,然后成对进行比较:

SELECT SOUNDEX('Fleas'),
       SOUNDEX('Fleece'),
       SOUNDEX('Peace'),
       SOUNDEX('Peas')

示例2,使用DIFFERENCE比较字符串对:

SELECT DIFFERENCE('Fleas','Fleece')

SELECT DIFFERENCE('Flees','Peace')

6.获取字符串最左和最右部分

LEFT函数返回字符串左起指定字符个数的一部分。RIGHT函数和LEFT函数相似,只是它返回字符串右起指定字符个数的一部分。
       示例1,从字符串获取晟左边的10个字符:

SELECT LEFT('I only want the leftmost 10 characters.',10)

示例2,获取字符串最右边的10个字符:
SELECT RIGHT('I only want the rightmost 10 characters.',10)

示例3  使用0填充ListPrice列的值:

USE AdventureWorks
GO
--为了业务目的需要填充数字
SELECT TOP 3
	   ProductID,RIGHT('0000000000'+CONVERT(varchar(10),ListPrice),10)
FROM Production.Product
WHERE ListPrice>0	   

7.检测字符串中的字符数或者字节数

    LEN函数返回字符串表达式中的字符个数,不包含最后一个字符后的任何空格(尾部空格)。而DATALENGTH返回表达式使用的字节数。。
    示例1   返回Unicodc字符串中的字符数(Unicode数据的每个字符占两个字节,而非Unicode数据的字符只占一个字节):

SELECT LEN(N'She sells sea shells by the sea shore.')

示例2   返回Unicode字符串中的字节数。

SELECT DATALENGTH(N'She sells sea shells by the sea shore.')

8.把字符串的一部分替换成另一个字符串

    REPLACE函数将某个字符串中的指定字符串的所有实例替换为一个新的字符串。REPLACE的一个好处在于它不像PATINDEX和CHARINOEX只返回找到模式的某个位置,REPLACE能找到某个字符串中的一个模式的多个实例。
    REPLACE的语法如下:
    REPLACE(’string_expressionl’,‘stririg_expression2‘,‘string_expression3‘)
    第一个字符串表达式参数是需要修改的字符串。第二个字符串表达式是需要从第一个字符串参数中移除的字符串。第三个字符串表达式是要插入到第一个参数中的字符串。
   示例,将指定字符串的所有实例替换为一个新串:

SELECT REPLACE('Zenon is our major profit center.Zenon leads the day',
		'Zenon',
		'Xerxes')

9.把字符串填充到字符串中

  STUFF函数删除某个长度的字符,并在指定的起始位置插入指定的字符串。语法如下;
  STUFF.(character_expression,start, length. character_expression)
  这个函数的第一个参数是要修改的字符表达式。第二个参数是要插入字符串的起始位置。length是要在字符表达式中删除的字符数。第四个参数是你希望插入的实际字符表达式。
    示例:替换了字符串的一部分,并在字符串内插入一个新的表达式:

SELECT STUFF('My cat''s name is X. Have you me him?',
             18,
             1,
             'Edgar')

10.在小写和大写之间进行转化

LOWER函数返回字符表达式的小写形式,UPPER函数返回字符表达式的大写形式a
示例      在显示Production.Document表中某行的DocumentSunrnary值:

USE AdventureWorks
GO

SELECT UPPER(DocumentSummary)
FROM Production.Document
WHERE FileName='Installing Replacement Pedals.doc'

11.移除前导空格和尾部空格

LTRIM函数移除前导空格,而RTRIM函数移除尾部空格。
示例     移除字符串的前导空格:

SELECT LTRIM('    String with leading blanks.')

12.重复一个表达式N次

REPLICATE函数将某个字符表达式重复指定的次数。语法如下:
REPLICATE(character_expression,Integer_expresslon)
第一个参数是要重复的字符表达式。第二个参数是字符表达式要重复的次数(整数值)。
示例,使用REPLICATE函数来重复字符表达式几次:

SELECT REPLICATE('Z',30)

13.重复一个空格N次

  SPACE函数根据为输入参数指定的整数,返回由重复空格组成的字符串。这个函数与REPLCATE函数功能相似——只是它用在特定的字符常量上。
    示例:将空格重复指定次数

SELECT 'Give me some' + SPACE(6) +'space'

14.逆序输出表达式

  REVERSE函数接受一个字符表达式,并以逆序的字符位置输出表达式。
  示例:反转一个字符串表达式

USE AdventureWorks
GO

SELECT TOP 1
	   GroupName,
	   REVERSE(GroupName) GroupNameReversed
FROM HumanResources.Department
ORDER BY GroupName	   

15.返回表达式的一块

    SUBSTRING函数返回某个表达式的指定块。语法如下:
    SUBSTRING(expression,start,length)
    函数的第一个参数是希望使用其来返回指定块的字符表达式。第二个参数定义了块的起始位置,第三个参数是你希望提取的字符块的长度。
    示例:假设应用程序接收到了一个客户的银行账号。按照公司的规定只能以隐藏形式保存辑行账号.只保留中间的4位:

DECLARE @BankAccountNumber char(14)
SET @BankAccountNumber='1424-2342-3536'

SELECT 'XXXX-' + SUBSTRING(@BankAccountNumber,6,4)+'-XXXX'
Masked_BankAccountNumber




















 
 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页