我正在尝试这段代码
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
并没有给我任何结果....我错过了什么吗?
我正在尝试这段代码
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
并没有给我任何结果....我错过了什么吗?
你不需要引号,你需要转义
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
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;
它没有返回任何东西,因为括号[ ]
被称为通配符字母LIKE
。括号通配符之间指定的字符集,它将匹配指定位置(通配符的位置)中的任何一个字符。
http://msdn.microsoft.com/en-us/library/ms179859.aspx
请打开链接并搜索以下文本。
使用 [ ] 通配符