我有一個這樣的字符串:用逗號分隔的sql字符串在每個單詞周圍加引號?
'one, two, three'
我怎樣才能得到它看起來像這樣:
'one','two','three'
這樣我就可以在IN子句中使用它?
我有一個這樣的字符串:用逗號分隔的sql字符串在每個單詞周圍加引號?
'one, two, three'
我怎樣才能得到它看起來像這樣:
'one','two','three'
這樣我就可以在IN子句中使用它?
只需使用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)
使用[取代](https://開頭MSDN .microsoft.com/EN-US /庫/ ms186862.aspx)。順便說一句。你不能在in-clause中使用字符串,那麼你還需要創建動態SQL。 –
@JamesZ - 我不確定你的意思是我不能在in-clause中使用字符串。我之前做過這樣的事情:select * from table where('one','two','three'),它工作正常 – xaisoft
您可以按照這種方式執行子句,但不能使用那些在它。它只會查找具體值,行值爲'''','2','3'',而不是3個單獨的值。 –