SQL——字符串处理函数

1) ASCII

Format:ASCII ( character_expression )

Function:返回表达式最左端字符的ASCII值。

eg:

select ASCII(‘abcdef‘)
go

Result:

2) CHAR:

Format:CHAR ( integer_expression ),integer_expression是介于0~266之间的整数

Function:将ASCII码转换为字符。

eg:

select CHAR(97)
go

Result:

3) LEFT

Format:LEFT ( character_expression , integer_expression )

Function:返回从字符串左边开始指定个数的字符。返回值类型为varchar

eg1:

返回Cname最左边的 1 个字符。

use XSCJ
select LEFT(Cname,1)
 from KC
 order by Cname
go

Result:

eg2:

select LEFT(‘abcdef‘,3)
go

Result:

4) LTRIM

Format:LTRIM ( character_expression )

Function:删除character_expression字符串中的前导空格——字符串前面的空格,并返回字符串, character_expression为字符型表达式,返回值类型为varchar。

eg1:

使用 LTRIM 字符删除字符变量中的起始空格。

select LTRIM(‘     代码改变世界‘)
go

Result:

eg2:

DECLARE @string varchar(40)

SET @string = ‘     中国,一个古老而伟大的国家‘

SELECT  LTRIM(@string)

GO

6) REPLACE

Format:REPLACE ( ‘string_expression1‘ , ‘string_expression2‘ ,  ‘string_expression3‘ )

Function:用第3个字符串表达式替换第一个字符串表达式中包含的第二个字符串表达式, string_expression1 , string_expression2‘, string_expression3均为字符串表达式,返回值为字符型。

 eg1:

DECLARE @var1 varchar(20),@var2 varchar(20),@var3 varchar(20)
 SET  @var1=‘紫小星是一个大帅哥。‘ /*一个SET语句只能给一个变量赋值*/
 SET  @var2=‘大帅哥‘
 SET @var3=‘萌妹纸‘
 SELECT replace(@var1,@var2,@var3)
GO

eg2:

select REPLACE(‘紫小星是一个大帅哥。‘,‘大帅哥‘,‘萌妹纸‘)
go

Result:

7) SUBSTRING

Format:SUBSTRING ( expression , start , length )

Function: 返回expression中指定的部分数据。参数expression可为字符串、二进制串、 text,image字段或表达式; start , length 均为整型,前者指定子串的开始位置,后者指定子串的长度(要返回的字节数)。如果expression是字符类型和二进制类型,则返回值类型与expression的类型相同。

给定的表达式

返回值类型

text

varchar

image

varbinary

ntext

nvarchar

eg1:

如下程序在一列中返回XS表中的姓氏,在另一列中返回表中学生的名。

SELECT SUBSTRING(Sname, 1,1), SUBSTRING(Sname, 2, LEN(Sname)-1)
FROM XS
ORDER BY Sname

Result:

eg2:

select SUBSTRING(‘1139685206‘,7,3) as ‘I love you‘
go

Result:

7) STR

Format:STR ( float_expression , length , decimal)

Function:将数字数据转换为字符数据。 Length表示转化后字符串数据的总长度,如果数据的长度小于字符串的长度,则在转换后的数据字符串的前面加空格填充。decimal表示转化后所需要显示的字符串数据中小数的位数。

Attention: STR 函数只视句点 (.) 为有效的小数点。如果使用不同的小数点(例如,国际性的应用程序),可使用 CSTR将数字转成字符串。

eg1:

declare  @a float,@b char(10)

set @a=200.86

set @b=(select STR(@a,6,2))

select  @b as 输出

go

Result:

eg2:

eg3:

eg4:

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。