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 Quotename(nam) = Quotename('abc[]def');
drop table #t;

ブラケット[ ]は。が付いたワイルドカードアルファベットとして知られているため、何も返されませんLIKE。角かっこワイルドカードの間に指定された文字のセット。指定された位置(ワイルドカードの場所)の任意の1文字と一致します。

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

リンクを開いて、次のテキストを検索してください。

[]ワイルドカード文字の使用

于 2012-05-22T15:36:56.533 に答える
1

エスケープが必要な quotename は必要ありません

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 に答える