在逗号分隔的 sql 字符串中的每个单词周围加引号?

xai*_*oft 5 t-sql sql-server

我有一个像这样的字符串:

'one, two, three'
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它看起来像这样:

'one','two','three'
Run Code Online (Sandbox Code Playgroud)

所以我可以在 IN 子句中使用它吗?

Aru*_*mar 1

只需使用 REPLACE 方法即可。将逗号替换为所需的字符串

DECLARE @TestData AS VARCHAR (200) = '''one, two, three''';
DECLARE @ReplacedData AS VARCHAR (200) = '';
SELECT @ReplacedData = REPLACE(@TestData, ', ', ''',''')
Run Code Online (Sandbox Code Playgroud)

@TestData如果您想在 中使用IN,则需要使用如下动态查询:

DECLARE @SqlTest AS VARCHAR (MAX) = '';
SET @SqlTest = 'SELECT * FROM TestTable WHERE ColumnValue IN (' + @ReplacedData + ')'
EXEC (@SqlTest)
Run Code Online (Sandbox Code Playgroud)