1

我正在尝试这段代码

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 

并没有给我任何结果....我错过了什么吗?

4

2 回答 2

1

你不需要引号,你需要转义

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
于 2012-05-22T15:36:08.920 回答
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;

它没有返回任何东西,因为括号[ ]被称为通配符字母LIKE。括号通配符之间指定的字符集,它将匹配指定位置(通配符的位置)中的任何一个字符。

http://msdn.microsoft.com/en-us/library/ms179859.aspx

请打开链接并搜索以下文本。

使用 [ ] 通配符

于 2012-05-22T15:36:56.533 回答