带有转义字符的T-SQL LIKE

要将所有记录与包含子字符串nvarchar的{​​{1}}列进行匹配

例如:Type [B]

以下作品:Owner [C] Type [B] Subtype [X]

但这是相当令人困惑的语法。

有更好的选择吗?

ch446909360 回答:带有转义字符的T-SQL LIKE

您可以使用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 '.' 
本文链接:https://www.f2er.com/3105798.html

大家都在问