我需要按顺序查找包含符号[]
的序列,如SQL Server 2014中的!@#$%^&[]{}<>?/,.*(^
和like
表达式。
如何转义括号以查找包含目标字符串的记录?
示例
SELECT *
FROM [TARGET_TABLE]
WHERE [TARGET COLUMN] LIKE '%"!@#$^&[]{}<>?/,.*(^"%';
[TARGET TABLE]
有一行[TARGET COLUMN]
的值为
some text "!@#$^&[]{}<>?/,.*(^"
但表达式的结果为空。
我知道[]
是一个通配符,但我如何转义括号来查找包含它们的字符串?
3条答案
按热度按时间xpcnnkqh1#
LIKE
有一个转义字符,默认为\
。您可以将其设置为其他字符。因此,这应该有效:您可以将其设置为另一个角色,但根据您的角色,很难选择一个:
但是,如果你想更通用,也许你想要
^
作为一个字符集。例如,要获取包含任何非字母数字字符的列:或者,如果要查找仅*包含非字母数字字符的列:
当然,这个想法可以扩展到其他字符集。
bqjvbblv2#
您可以将左括号放在类中作为
[[]
。当右括号未关闭类时,它将被视为文字。(我使用class这个词作为正则表达式中的术语,我认为SQLServer文档将其称为set。)yc0p9oo03#
我用过这个:
然后这个: