我想在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,但是我想通过一个简单的查询来执行此操作。
答案 0 :(得分:3)
您在这里。请注意使用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]]%'