2014-05-14 50 views
-2

ü我想要得到的字符串「用戶名,姓,名」這樣的 「用戶名」,「姓」,「名」逃逸單引號的select語句 - IN子句

我試試這個

DECLARE @Header varchar(MAX) 
SELECT @Header= 'Username,Surname,Name' 

SELECT @Header = replace(@Header,',',''',''') 
SELECT @Header = ''[email protected]+'' 

SELECT * from myTable where field in ($header) 

結果應該是這樣的「用戶名」,「姓」,「名」

,但我不知道爲什麼什麼都不顯示 對不起我的英文不好。

+0

@ M.Ali 我試着從myTable的這個SELECT *凡在( '用戶名', '姓', '名稱')做工精細 場,但這個我嘗試在('用戶名該SELECT * FROM myTable的地方場,姓氏,名字')沒有!!!!! 我在SQL SERVER 2005 – user3638173

+0

對不起我的錯誤我把它與SSRS查詢設計器混合起來:S –

+0

沒問題:) tnx任何方式 – user3638173

回答

0

下面應該工作:

DECLARE @Header varchar(MAX) 
DECLARE @sqlstmt varchar(MAX) 
SET @Header= 'Username,Surname,Name' 

SET @Header = replace(@Header,',',''',''') 
SET @Header = ''''[email protected]+'''' 

SET @sqlstmt = 'SELECT * from myTable where field in ('[email protected]+')' 
exec (@sqlstmt) 
0

我懷疑這可能是一個XY problem

你有什麼理由不能僅僅使用下面的東西?

SELECT * 
FROM myTable 
WHERE field IN ('''Username''', '''Surname''', '''Name'''); 

這將返回任何行中的所有列在myTable其中field值之一:

  • 'Username'
  • 'Surname'
  • 'Name'

需要注意的是,逃避單引號在字符串文字中,只需使用''即可。所以包含單個單引號的文字將是''''