表中的记录格式很少,ABCDEF
,[123]ABCDEF
,ABCDEF[ABC]
和ABCDEF[123]
字母和数字的数量不是固定的,它们是变化的。
我可以很容易地找到带有方括号的像这样的东西和它的变化形式。
SELECT * FROM X WHERE Y LIKE '%/[%' ESCAPE '/'
但是我想找到括号内只有三个数字并且仅出现在行首或结尾的记录。即[123]ABCDEF
和ABCDEF[123]
格式。
我尝试了LIKE '%[___/]' ESCAPE '/'
,希望操纵它仅接受括号内的数字,但无法使其正常工作。
一个巨大的警告可能是诸如ABC[123]DEF
格式的记录。这可能很麻烦,因为我不希望返回此类记录。我不知道是否有这样的记录,但我无法否认这种可能性。
我该怎么做?
答案 0 :(得分:1)
括弧用于提供有效的字符集。 ({ component: ChildComponent = DefaultComponent, ...rest }) =>
表示从0到9的任何数字。如果直接使用括号,则必须将其转义:
[0-9]
结果
DECLARE @t TABLE(T nvarchar(20))
INSERT @t values ('ABCDEF'), ('[123]ABCDEF'), ('ABCDEF[ABC]'), ('ABCDEF[123]'), ('AS[123]AS')
SELECT *
FROM @t
WHERE T LIKE '\[[0-9][0-9][0-9]\]%' ESCAPE '\'
OR T LIKE '%\[[0-9][0-9][0-9]\]' ESCAPE '\'
--Or match anywhere
--WHERE T LIKE '%\[[0-9][0-9][0-9]\]%' ESCAPE '\'