如何trim text from SQL Server select statement for text 由两个字母和五个数字组成?
How to trim text from SQL Server select statement for text consisting of two letters and five digits?
我想写一个select查询来只输出包含两个字母和五个数字的文本。
数据类型为varchar(max)
。
每一列可能包含多个这些数字,也可能包含许多其他文本。服务器是 SQL Server 2012。
示例数据 1:
Reg.nr: AA11111, Dette er et teksttekst pa et test abonnement.
Referanse: Faktura 2222222222, Beløp: 1572.91,
Referanse: Purregebyr, Beløp: -64.00.
12.12.12 13:00:00 AAA
Utring ingen svar
18.12.14 18:00:00 BBB
tekst tekst tekst
14.01.15 15:00:00 CCC
tekst tekst tekst
示例数据 2:
text text text
AA11111 text,
BB22222 text,
text text
期望的输出:
Sample data 1: AA11111
Sample data 2: AA11111, BB22222
试试这个:
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
这里是 SQLFiddle 查询的工作原理。
我想写一个select查询来只输出包含两个字母和五个数字的文本。
数据类型为varchar(max)
。
每一列可能包含多个这些数字,也可能包含许多其他文本。服务器是 SQL Server 2012。
示例数据 1:
Reg.nr: AA11111, Dette er et teksttekst pa et test abonnement.
Referanse: Faktura 2222222222, Beløp: 1572.91,
Referanse: Purregebyr, Beløp: -64.00.
12.12.12 13:00:00 AAA
Utring ingen svar
18.12.14 18:00:00 BBB
tekst tekst tekst
14.01.15 15:00:00 CCC
tekst tekst tekst
示例数据 2:
text text text
AA11111 text,
BB22222 text,
text text
期望的输出:
Sample data 1:
AA11111
Sample data 2:AA11111, BB22222
试试这个:
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
这里是 SQLFiddle 查询的工作原理。