我正在尝试此代码
CREATE TABLE #t
(
nam Varchar(100)
)
INSERT INTO #t(nam)VALUES('abc[]def')
SELECT * FROM #t Where Quotename(nam) like Quotename('abc[]def')
drop table #t
并没有给我任何结果......我错过了什么?
答案 0 :(得分:1)
您不需要需要引号的escape
CREATE TABLE #t
(
nam VARCHAR(100)
)
INSERT INTO #t(nam) VALUES('abc[]def')
SELECT *
FROM #t
WHERE nam LIKE 'abc\[]def' ESCAPE '\'
DROP TABLE #t
答案 1 :(得分:1)
CREATE TABLE #t
(
nam Varchar(100)
);
INSERT INTO #t(nam)VALUES('abc[]def');
SELECT * FROM #t Where Quotename(nam) = Quotename('abc[]def');
drop table #t;
它没有返回任何内容,因为Brackets [ ]
被称为带有LIKE
的通配符字母。
括号通配符之间指定的字符集,它将匹配指定位置中的任何一个字符(通配符的位置)。
http://msdn.microsoft.com/en-us/library/ms179859.aspx
请打开链接并搜索以下文字。
使用[]通配符