来自 新葡亰数据库 2019-11-06 09:27 的文章
当前位置: 澳门新葡亰app > 新葡亰数据库 > 正文

它可以从字符串提取一个子字符串,总结起来有

1.CONCAT函数

  那生机勃勃篇作品主要计算开荒进度中平时选择到的字符串管理函数,它们在拍卖字符串时非常有用,那么,计算起来有以下函数。

SELECT custid, country, region, city,
  country + N',' + region + N',' + city AS location
FROM Sales.Customers;

1,字符串串联运算符

对有NULL 数据行加减也为NULL

2,SUBSTEnclaveING提取子串

 图片 1

3,LEFT和RIGHT

怎么解决呢 这里就用到了 CONCAT 函数

4,LEN和DATALENGTH

SELECT custid, country, region, city,
  country + COALESCE( N',' + region, N'') + N',' + city AS location
FROM Sales.Customers;

5,CHARINDEX函数

CONCAT('A',NULL,'B') 选用三个一而再三翻五次字符串输入并主动替换null 为‘’字符串 结果正是 AB

6,PATINDEX函数

2.SUBSTRING函数

7,REPLACE替换

它能够从字符串提取三个子字符串

8,REPLICATE复制字符串

和c# 截取字符串用法相似 不过下标不是零伊始

9,STUFF函数

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

10,UPPER和LOWER函数

比如第多个参数当先字符长度也没事 它会暗许去整个字符串长度

11,RTRIM和LTRIM函数

3.LEFT和RIGHT函数

字符串串联运算符

鉴于事情须求,有的时候大家须要将七个字段(列)组合起来,中间加上分隔符,然后输出。此时我们就能用到字符串串联运算符[+]号。举例,我们对Employees表中的firstname,空格和lastname列串联起来,生成完整的姓名fullname列。

SQL查询代码:

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

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

询问结果:

图片 2

亟需小心的是,ANSI SQL规定对NULL值试行串联运算后也会发出NULL值的结果,那是SQL Server的暗许行为。当然,能够通过将名称为CONCAT_NULL_YIELDS_NULL的对话选项设置为OFF来更正SQL Server的私下认可管理方式,可是要记得,在拍卖完毕后要安装回原本的ON状态。

实则SUBST凯雷德ING 函数简化版

SUBSTHighlanderING提取子串

SUBST翼虎ING函数用于从字符串中领到子串。举个例子,以下代码再次来到字符串‘abc’.

SQL查询代码:

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

查询结果:

图片 3

留心:1,平常始于地点是从1初叶的。

   2,要是第叁个参数和第八个参数的和超过了全体字符串的尺寸,则函数会再次来到从最初地方上马,直到字符串结尾的全方位字符串而不会挑起错误。当须要回到从有个别地点上马,直到最终的有所内容时,能够钦命一个超级大的值或许表示一切字符串的长度的值就能够。

SELECT RIGHT('abcde', 3); -- 'cde'

SELECT LEFT(N'abcde',3); -- 'abc'

LEFT和RIGHT

LEFT和传祺IGHT函数是SUBSTQashqaiING的简写方式,它们分别重返输入字符串从左或左臂开头的钦命个数的字符。举个例子,以下代码重回字符'cde'。

SQL查询代码:

SELECT RIGHT('abcde',3);

查询结果跟SUBST路虎极光ING雷同。LEFT的接收同KugaIGHT。

4.LEN和DATALENGTH函数

LEN和DATALENGTH

LEN函数再次来到输入字符串的字符数。而DATALENGTH函数再次来到输入字符串的字节数。需求注意它们的区分。LEN的语法格局为:LEN(string),DATALENGTH的语法方式为:DATALENGTH(string)

举个例子,以下代码重临字符串的字符数5

SQL查询代码:

SELECT LEN(N'abcde');

询问结果输出:5

而假使接纳DATALENGTH函数则输出:10。

SELECT LEN(N'abcde'); -- 5

SELECT DATALENGTH(N'abcde'); -- 10

CHARINDEX函数

CHATiggoINDEX函数再次回到字符串中有个别子串第一遍面世的序幕地方。它的语法格局为:CHA宝马7系INDEX(substring,string[,start_pos]),该函数在首个参数(string)中寻觅第三个参数(substring),并回到其开端地方,能够采用性地钦定第八个参数(start_pos),以便告诉那一个函数从字符串的什么岗位上马搜索,假设不钦定的话,则从字符串的首先个字符串开头索求。借使在string中找不到substring,则函数重返0。

比方,以下代码在'trac mcgrady'中搜寻第二个空格的任务,结果将回到5

SQL查询代码:

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

LEN 再次来到字符数  DATALENGTH 重返字节数   LEN会删除尾随空格 但 DATALENGTH  不会

PATINDEX函数

PATINDEX函数再次来到字符串中有些形式第贰次面世的序幕地方。它的语法方式为:PATINDEX(pattern,string)

举个例子说,我们要求在字符串中找到第三次现身数字的岗位。

SQL查询代码:

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

查询结果:5

5.CHARINDEX 函数

REPLACE替换

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

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

SQL查询代码:

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

询问结果:1:a 2:b

SELECT CHARINDEX(' ','Itzik Ben-Gan'); -- 6

REPLICATE复制字符串

REPLICATE函数以钦命的次数复制字符串值。它的语法情势为:REPLICATE(string,n)

诸如,以下代码将字符串‘abc’复制三回,重临字符串'abcabcabc'。

SQL查询代码:

SELECT REPLICATE('abc',3);

查询结果:'abcabcabc'

上边那一个例子彰显了REPLICATE函数,甚至景逸SUVIGHT函数和字符串串联的用法。以下对Production.Suppliers的查询为各类代理商的寸头ID生成八个11个人数字的字符串表示(不足九人时,后边补‘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

询问结果:

图片 4

回来空格在 后面字符串第二次现身岗位

STUFF函数

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

譬喻,以下代码对字符串‘xyz’实行管理,先删除在那之中的第二个字符,再插入字符串'abc'.

SQL查询代码:

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

查询结果:'xabcz'

6.PATINDEX 函数

UPPER和LOWER函数

UPPE普拉多和LOWE宝马X3函数用于将输入字符串中的全数字符都更动为大写或小写情势。它们的语法情势为:UPPESportage(string),LOWEXC60(string)。

举个例子说,第三个函数再次回到'TRAC MCGRADY',第二个函数重回'trac mcgrady'。

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

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

似是而非查询条件 在字符串中冒出之处

RTRIM和LTRIM函数

RT凯雷德IM和LTLacrosseIM函数用于删除输入字符串的尾巴空格和带领空格。它们的语法格局为:RTLANDIM(string),LTCR-VIM(string)。假设既想删除前导空格,也想删除尾巴部分空格,则足以将叁个函数的结果作为另三个函数的输入来选用。举例,以下代码会去除输入字符串的指引空格和尾巴空格,最终回来‘abc’

SQL查询代码:

-- 返回'abc'
SELECT RTRIM(LTRIM(' abc '));
SELECT PATINDEX('%[0-9]%', 'abcd123efgh'); -- 5

寻找 数字在后头字符串首回面世的职责

7.REPLACE函数

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

轮番函数 也能够用来总结字符串中字符现身的次数

SELECT empid, lastname,
  LEN(lastname) - LEN(REPLACE(lastname, 'e', '')) AS numoccur
FROM HR.Employees;

赢得字符串中E现身的次数  当前长度减替换后的尺寸

8.REPLICATE函数

SELECT REPLICATE('abc', 3); -- 'abcabcabc'

复制字符串  日常可用它来生成订单号 举个例子

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

图片 5

 

复制9个0 对id类型统风姿洒脱后从右取十三个字符   能够借助须要定制类型

9.STUFF 函数

同意从字符串中移除钦定数量字符串 并插入新子字符串

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

先是个参数 字符串 第贰个参数 最初移除地点    第3个参数 移除多少个字符   第三个参数 移除的字符要替换到什么字符

10.UPPER和LOWER 函数

SELECT UPPER('Itzik Ben-Gan'); -- 'ITZIK BEN-GAN'

SELECT LOWER('Itzik Ben-Gan'); -- 'itzik ben-gan'

大小写互转

11.RTRIM和LTRIM 函数

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

它们分别是剔除 前空格 和后空格

12.FORMAT 函数

好像于字符串格式拼接

SELECT FORMAT(1759, 'd10'); -- '0000001759'
SELECT FORMAT(1759, '0000000000'); -- '0000001759'

自定义格式化字符串输入 能够有各类摘取  官方参谋链接 

13.LIKE 谓词函数

SELECT empid, lastname
FROM HR.Employees
WHERE lastname LIKE N'D%';

再次来到起头是D的顾客

SELECT empid, lastname
FROM HR.Employees
WHERE lastname LIKE N'_e%';

回去起先第4个是e的客户

SELECT empid, lastname
FROM HR.Employees
WHERE lastname LIKE N'[ABC]%';

重回开始是A或B或C 的客户

SELECT empid, lastname
FROM HR.Employees
WHERE lastname LIKE N'[A-E]%';

回去初阶是A到E 的顾客

SELECT empid, lastname
FROM HR.Employees
WHERE lastname LIKE N'[^A-E]%';

重临不是A到E开端的客商  若是通配符用特需转译 的用 [ ] 包起来 %[%]%

 

本文由澳门新葡亰app发布于新葡亰数据库,转载请注明出处:它可以从字符串提取一个子字符串,总结起来有

关键词: