Sql server 带转义字符的类T-SQL

Sql server 带转义字符的类T-SQL,sql-server,tsql,sql-server-2012,escaping,sql-like,Sql Server,Tsql,Sql Server 2012,Escaping,Sql Like,将所有记录与包含子字符串类型[B]的nvarchar列匹配 例如:所有者[C]类型[B]子类型[X] 以下工作方式:如“%Type[]B[]]%” 但它的语法相当混乱 有更好的选择吗 您可以使用选项 查询将类似于“%Type[B]”转义 请查找包含示例数据的工作查询: DECLARE @TextTable TABLE (String NVARCHAR (500)); INSERT INTO @TextTable(String) SELECT ('Owner [C] Type [B] Subtyp

将所有记录与包含子字符串类型[B]的nvarchar列匹配

例如:所有者[C]类型[B]子类型[X]

以下工作方式:如“%Type[]B[]]%”

但它的语法相当混乱

有更好的选择吗

您可以使用选项

查询将类似于“%Type[B]”转义

请查找包含示例数据的工作查询:

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 '#'
您可以使用这个选项

查询将类似于“%Type[B]”转义

请查找包含示例数据的工作查询:

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 '#'
是的,您可以使用转义并定义自定义转义字符:

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 '.' 
是的,您可以使用转义并定义自定义转义字符:

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 '.' 

另外,请参考这篇文章:只需要逃离开放方括号[而不是封闭方括号]?@baltostar Yes,]不需要逃离。也请参考这篇文章:只需要逃离开放方括号[而不是封闭方括号]?@baltostar Yes,]不需要逃逸。只需要逃逸开放方括号[但不需要封闭方括号]?只需要逃逸开放方括号[但不需要封闭方括号]?