2016-05-10 70 views
2

我有一個這樣的字符串:用逗號分隔的sql字符串在每個單詞周圍加引號?

'one, two, three' 

我怎樣才能得到它看起來像這樣:

'one','two','three' 

這樣我就可以在IN子句中使用它?

+1

使用[取代](https://開頭MSDN .microsoft.com/EN-US /庫/ ms186862.aspx)。順便說一句。你不能在in-clause中使用字符串,那麼你還需要創建動態SQL。 –

+0

@JamesZ - 我不確定你的意思是我不能在in-clause中使用字符串。我之前做過這樣的事情:select * from table where('one','two','three'),它工作正常 – xaisoft

+0

您可以按照這種方式執行子句,但不能使用那些在它。它只會查找具體值,行值爲'''','2','3'',而不是3個單獨的值。 –

回答

0

只需使用REPLACE方法即可。如果你想在IN使用@TestData與所需的字符串

DECLARE @TestData AS VARCHAR (200) = '''one, two, three'''; 
DECLARE @ReplacedData AS VARCHAR (200) = ''; 
SELECT @ReplacedData = REPLACE(@TestData, ', ', ''',''') 

替換逗號,你需要使用動態查詢象下面這樣:

DECLARE @SqlTest AS VARCHAR (MAX) = ''; 
SET @SqlTest = 'SELECT * FROM TestTable WHERE ColumnValue IN (' + @ReplacedData + ')' 
EXEC (@SqlTest) 
+0

我試過了,但是我的數據在列中看起來像這樣:一,二,三。它沒有back ticks,所以它仍然產生了相同的字符串 – xaisoft

+0

我更新了我的帖子,它必須在編輯時將它放入。它只是在原始字符串單引號 – xaisoft

+0

請檢查更新的答案 – Arulkumar