简体   繁体   English

如何从SQL Server select语句中修剪包含两个字母和五个数字的文本?

[英]How to trim text from SQL Server select statement for text consisting of two letters and five digits?

I would like to write a select query to output only the text containing of two letters and five digits. 我想编写一个选择查询以仅输出包含两个字母和五个数字的文本。

The data type is varchar(max) . 数据类型为varchar(max)

Each column may contain more than one of these numbers and also may contain a lots of other text. 每列可能包含多个这些数字,也可能包含许多其他文本。 The server is a SQL Server 2012. 该服务器是SQL Server 2012。

Sample data 1: 样本数据1:

Reg.nr: AA11111, Dette er et teksttekst pa et test abonnement. 登记号:AA11111,Dette er et teksttekst pa et测试终止。
Referanse: Faktura 2222222222, Beløp: 1572.91, 推荐人:Faktura 2222222222,贝洛普:1572.91,
Referanse: Purregebyr, Beløp: -64.00. 推荐人:Purregebyr,贝洛普:-64.00。

12.12.12 13:00:00 AAA 12.12.12 13:00:00 AAA
Utring ingen svar Utring ingen svar

18.12.14 18:00:00 BBB 18.12.14 18:00:00 BBB
tekst tekst tekst tekst tekst tekst

14.01.15 15:00:00 CCC 14.01.15 15:00:00 CCC
tekst tekst tekst tekst tekst tekst

Sample data 2: 样本数据2:

text text text 文字文字文字
AA11111 text, AA11111文字,
BB22222 text, BB22222文字,
text text 文字文字

Desired output: 所需的输出:

Sample data 1: AA11111 样本数据1: AA11111
Sample data 2: AA11111, BB22222 样本数据2: AA11111, BB22222

Try this: 尝试这个:

SELECT 
    SUBSTRING(col, PATINDEX('%[a-zA-Z][a-zA-Z][0-9][0-9][0-9][0-9][0-9]%', '' + col), 7)
FROM TEST
WHERE PATINDEX('%[a-zA-Z][a-zA-Z][0-9][0-9][0-9][0-9][0-9]%', '' + col) <> 0

Here is a SQLFiddle with how the query works. 这是一个SQLFiddle,其中包含查询的工作方式。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM