Sql server 如何使用LIKE运算符搜索包含方括号和特定字符数的字符串
我想告诉SQLServer2008R2中的SELECT查询中的like运算符搜索包含以下字符串的字符串Sql server 如何使用LIKE运算符搜索包含方括号和特定字符数的字符串,sql-server,sql-server-2008-r2,sql-like,Sql Server,Sql Server 2008 R2,Sql Like,我想告诉SQLServer2008R2中的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 Nor
[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)
我认为带有CLR的正则表达式是一个选项,但我想用一个简单的查询来说明这一点。给你。注意使用转义子句转义[和]字符
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]]%'
非常感谢。非常清晰和有用。我将使用带有escape的,因为它对我来说更可读