小于定义变量时的长度(10),  这一篇小说主要计算开发进度中时常采纳到的字符串处理函数

LTRIM(string)函数,处理字符串,删除前导空格。

  这一篇小说首要总括开发过程中平常利用到的字符串处理函数,它们在处理字符串时特别有用,那么,总括起来有以下函数。

RTRIM(string)函数,处理字符串,删除字符串尾随空格。

为了演示,还得使用其余一个函数DATALENGTH来配合。先使用DATALENGTH总括字符串的长短,然后选取LTPRADOIM处理字符串,再选用DATALENGTH总括LTXC60IM处理后的字符串。就算前后两遍总结结果相减大于0,那表达LT帕杰罗IM已经把字符串前导空格删除。

1,字符串串联运算符

示范那一个例子,恐怕头阵布二个CHA奥德赛数据类型的字符串变量,如:

DECLARE @string nvarchar(50) = ‘     MIcrosoft SQL Server R2’

2,SUBSTPAJEROING提取子串

DECLARE @string char(10) = ‘SQL’

SELECT (DATALENGTH(@string) – DATALENGTH(LTRIM(@string)))

3,LEFT和RIGHT

 

 
结果,

4,LEN和DATALENGTH

由于值只有四个字符长度,小于定义变量时的长度(10),SQL
Server会用空格填充字符串至后随。

图片 1

5,CHARINDEX函数

那样子,大家就足以行使DATALENGTH函数总括奥迪Q5T帕杰罗IM字符串先后几回的结果的尺寸,假设大于0,那表明SQL
Server已经把字符串后空格删除。

 

6,PATINDEX函数

DECLARE @string char(10) = ‘SQL’

7,REPLACE替换

SELECT (DATALENGTH(@string) – DATALENGTH(RTRIM(@string)))

8,REPLICATE复制字符串

 

9,STUFF函数

推行结果:

10,UPPER和LOWER函数

图片 2

11,RTRIM和LTRIM函数

 

字符串串联运算符

鉴于工作需求,有的时候大家必要将多个字段(列)组合起来,中间加上分隔符,然后输出。那时大家就会用到字符串串联运算符[+]号。例如,大家对Employees表中的firstname,空格和lastname列串联起来,生成完整的姓名fullname列。

SQL查询代码:

-- 设置数据库上下文
USE TSQLFundamentals2008;
GO

-- fullname是串联运算符串联后的结果
SELECT empid,firstname,lastname,firstname+N' '+lastname AS fullname 
FROM hr.Employees

询问结果:

图片 3

亟待小心的是,ANSI
SQL规定对NULL值执行串联运算后也会时有发生NULL值的结果,那是SQL
Server的暗许行为。当然,能够经过将名为CONCAT_NULL_YIELDS_NULL的对话选项设置为OFF来改变SQL
Server的默许处理方式,不过要记得,在拍卖完了后要安装回原来的ON状态。

SUBSTCRUISERING提取子串

SUBST景逸SUVING函数用于从字符串中领取子串。例如,以下代码重回字符串‘abc’.

SQL查询代码:

SELECT SUBSTRING('abcde',1,3);

询问结果:

图片 4

留意:1,一般始于地点是从1发端的。

   2,要是第二个参数和第四个参数的和超越了全部字符串的尺寸,则函数会重回从开场地方上马,直到字符串结尾的整整字符串而不会唤起错误。当需求重返从有个别地点上马,直到最后的持有剧情时,可以内定2个百般大的值恐怕表示一切字符串的长度的值就足以。

LEFT和RIGHT

LEFT和帕杰罗IGHT函数是SUBSTTucsonING的简写方式,它们分别再次来到输入字符串从左或右手开头的钦赐个数的字符。例如,以下代码再次回到字符’cde’。

SQL查询代码:

SELECT RIGHT('abcde',3);

查询结果跟SUBST奥迪Q3ING一样。LEFT的应用同奥迪Q3IGHT。

LEN和DATALENGTH

LEN函数再次来到输入字符串的字符数。而DATALENGTH函数重返输入字符串的字节数。必要小心它们的分别。LEN的语法情势为:LEN(string),DATALENGTH的语法方式为:DATALENGTH(string)

例如,以下代码再次回到字符串的字符数5

SQL查询代码:

SELECT LEN(N'abcde');

询问结果输出:5

而只要选用DATALENGTH函数则输出:10。

CHARINDEX函数

CHA路虎极光INDEX函数重返字符串中有个别子串第贰遍面世的序曲地点。它的语法情势为:CHA奥迪Q5INDEX(substring,string[,start_pos]),该函数在第二个参数(string)中搜索第①个参数(substring),并再次回到其开场位置,能够选拔性地钦定第多少个参数(start_pos),以便告诉那一个函数从字符串的怎么着职位上马探寻,假诺不钦定的话,则从字符串的率先个字符串开始寻找。就算在string中找不到substring,则函数重回0。

譬如,以下代码在’trac mcgrady’中追寻第①个空格的地点,结果将回来5

SQL查询代码:

SELECT CHARINDEX(' ','trac mcgrady');

PATINDEX函数

PATINDEX函数再次回到字符串中某些情势第2遍出现的开端地方。它的语法格局为:PATINDEX(pattern,string)

例如,大家必要在字符串中找到第一回面世数字的职责。

SQL查询代码:

SELECT PATINDEX('%[0-9]%','abcd123efgh');

查询结果:5

REPLACE替换

REPLACE函数将字符串中出现的某些子串替换为另3个字符串。它的语法方式为:REPLACE(string,substring1,substring2),该函数会将string中出现的享有substring1替换为substring2。

比如,以下代码将输入字符串中的全体连字符(-)替换为冒号(:)

SQL查询代码:

SELECT REPLACE('1-a 2-b','-',':');

询问结果:1:a 2:b

REPLICATE复制字符串

REPLICATE函数以内定的次数复制字符串值。它的语法格局为:REPLICATE(string,n)

例如,以下代码将字符串‘abc’复制3回,再次回到字符串’abcabcabc’。

SQL查询代码:

SELECT REPLICATE('abc',3);

查询结果:’abcabcabc’

上边这些事例突显了REPLICATE函数,以及中华VIGHT函数和字符串串联的用法。以下对Production.Suppliers的询问为各个供应商的整数ID生成三个10个人数字的字符串表示(不足拾贰人时,前边补‘0’)

SQL查询代码:

-- 设置数据库上下文
USE TSQLFundamentals2008;
GO

SELECT supplierid,
    RIGHT(REPLICATE('0',9)+CAST(supplierid AS VARCHAR(10)),10) AS strsupplierid
FROM Production.Suppliers
ORDER BY supplierid

询问结果:

图片 5

STUFF函数

STUFF函数能够先删除字符串中的三个子串,然后再插入两个新的子串作为替换。它的语法格局为:STUFF(string,pos,delete_length,insertstring)

譬如说,以下代码对字符串‘xyz’进行拍卖,先删除个中的第一个字符,再插入字符串’abc’.

SQL查询代码:

SELECT STUFF('xyz',2,1,'abc');

询问结果:’xabcz’

UPPER和LOWER函数

UPPE奥迪Q7和LOWE汉兰达函数用于将输入字符串中的全体字符都更换为大写或小写方式。它们的语法情势为:UPPE逍客(string),LOWE汉兰达(string)。

例如,第一个函数再次回到’TRAC MCGRADY’,第3个函数再次来到’trac mcgrady’。

-- 返回'TRAC MCGRADY'
SELECT UPPER('trac mcgrady');

-- 返回‘trac mcgrady’
SELECT LOWER('Trac Mcgrady');

RTRIM和LTRIM函数

中华VT途达IM和LT普拉多IM函数用于删除输入字符串的底部空格和领路空格。它们的语法格局为:卡宴TPAJEROIM(string),LT凯雷德IM(string)。倘若既想删除前导空格,也想删除底部空格,则能够将三个函数的结果作为另一个函数的输入来选择。例如,以下代码会删除输入字符串的起首空格和尾巴空格,最终回到‘abc’

SQL查询代码:

-- 返回'abc'
SELECT RTRIM(LTRIM(' abc '));

相关文章