T-SQL LIKE 带转义字符

T-SQL LIKE with escaped characters

匹配具有包含子字符串 Type [B]

nvarchar 列的所有记录

例如:Owner [C] Type [B] Subtype [X]

以下作品:LIKE '%Type [[]B[]]%'

但它的语法相当混乱。

还有更好的选择吗?

您可以使用 ESCAPE 选项。

查询将是LIKE '%Type #[B]%' ESCAPE '#'

请使用示例数据查找工作查询:

DECLARE @TextTable TABLE (String NVARCHAR (500));
INSERT INTO @TextTable(String) SELECT ('Owner [C] Type [B] Subtype [X]');
INSERT INTO @TextTable(String) VALUES ('Owner [C] Type [B Subtype [X]');
INSERT INTO @TextTable(String) VALUES ('Owner [C] Type B Subtype [X]');

SELECT *
FROM @TextTable
WHERE String LIKE '%Type #[B]%' ESCAPE '#'

Working demo on db<>fiddle

是的,您可以使用 ESCAPE 并定义您的自定义转义字符:

select *
from   (select 'Owner [C] Type [B] Subtype [X]' as field) as t
where   
   t.field LIKE '%Type \[B]%' ESCAPE '\' --can be any char
   --t.field LIKE '%Type .[B]%' ESCAPE '.'