如何使用 LIKE 运算符搜索包含方括号和特定数量字符的字符串
How to search for strings containing square brackets and a specific number of chars with the LIKE operator
我想在 SQL Server2008R2 的 SELECT 查询中告诉 LIKE 运算符搜索包含这些字符串的字符串
[can]
[eur]
[usd]
基本上
SELECT DESCRIPTION
FROM TABLE
WHERE
DESCRIPTION contains two square brakets and there are three chars in the square brackets
这些将以某种方式返回结果
Freddie Young [FRY]
Micheal Norton [MIN]
但那些不是
Laura Cunningham [LC]
Marc Lizard (MAL)
我想 RegEx 和 CLR 是一个选项,但我想用一个简单的查询来执行此操作。
给你。请注意使用 ESCAPE 子句转义 [ 和 ] 字符。
WITH cte(value)
as
(
SELECT 'Freddie Young [FRY]'
Union
SELECT 'Micheal Norton [MIN]'
Union
SELECT 'Laura Cunningham [LC]'
Union
SELECT 'Marc Lizard (MAL)')
Select *
FROM cte
Where value like '%![[A-Z][A-Z][A-Z]!]%' escape '!'
下面是没有转义的版本。要查找左方括号,您需要将其括在方括号中。要查找右方括号,只需使用字符。不需要封闭。
WITH cte(value)
AS
(
SELECT 'Freddie Young [FRY]'
UNION
SELECT 'Micheal Norton [MIN]'
UNION
SELECT 'Laura Cunningham [LC]'
UNION
SELECT 'Marc Lizard (MAL)'
)
SELECT *
FROM cte
WHERE value like '%[[][A-Z][A-Z][A-Z]]%'
我想在 SQL Server2008R2 的 SELECT 查询中告诉 LIKE 运算符搜索包含这些字符串的字符串
[can]
[eur]
[usd]
基本上
SELECT DESCRIPTION
FROM TABLE
WHERE
DESCRIPTION contains two square brakets and there are three chars in the square brackets
这些将以某种方式返回结果
Freddie Young [FRY]
Micheal Norton [MIN]
但那些不是
Laura Cunningham [LC]
Marc Lizard (MAL)
我想 RegEx 和 CLR 是一个选项,但我想用一个简单的查询来执行此操作。
给你。请注意使用 ESCAPE 子句转义 [ 和 ] 字符。
WITH cte(value)
as
(
SELECT 'Freddie Young [FRY]'
Union
SELECT 'Micheal Norton [MIN]'
Union
SELECT 'Laura Cunningham [LC]'
Union
SELECT 'Marc Lizard (MAL)')
Select *
FROM cte
Where value like '%![[A-Z][A-Z][A-Z]!]%' escape '!'
下面是没有转义的版本。要查找左方括号,您需要将其括在方括号中。要查找右方括号,只需使用字符。不需要封闭。
WITH cte(value)
AS
(
SELECT 'Freddie Young [FRY]'
UNION
SELECT 'Micheal Norton [MIN]'
UNION
SELECT 'Laura Cunningham [LC]'
UNION
SELECT 'Marc Lizard (MAL)'
)
SELECT *
FROM cte
WHERE value like '%[[][A-Z][A-Z][A-Z]]%'