如何将一列中的值转换为带引号的逗号分隔列表?

时间:2013-06-07 07:19:11

标签: sql-server sql-server-2008 tsql

您好我正在使用SQLServer2008。

在我的表格中有一个字段'Code'。

当我写查询时

select Code from Table1

然后它给出了以下输出

Code
----
 9
 8 
 7
 6
 5
 10
 31

我的所需输出是:

["9","8","7","6","5","10","31"]

我在表中有大约14000个代码。 我怎样才能得到这个结果?感谢。

4 个答案:

答案 0 :(得分:3)

试试这个 -

DECLARE @temp TABLE(Code INT)
INSERT INTO @temp (Code)
VALUES (9),(8),(7),(6),(5),(10),(31)

SELECT STUFF((
    SELECT ', "' + CAST(Code AS VARCHAR(10)) + '"'
    FROM @temp
    FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '[') + ']'

输出:

["9", "8", "7", "6", "5", "10", "31"]

答案 1 :(得分:1)

以下是您的查询:

DECLARE @var varchar(8000)
SET @var = '['
SELECT @var = @var + '"' + convert(varchar(100),Code) + '",' FROM Table1
SET @var = SUBSTRING(@var,0,LEN(@var)) + ']'

SELECT @var

SUBSTRING(@var,0,LEN(@var))删除字符串末尾不必要的逗号

答案 2 :(得分:1)

try this
DECLARE @Str VARCHAR(MAX)
SELECT  @Str = COALESCE(@Str + ',', '') + '"'+CAST(Code AS VARCHAR(50))+'"'
FROM    Table1


SELECT  '['+@Str+']'

答案 3 :(得分:0)

试试这个

declare @formattdstring varchar(100)
set @formattdstring=''
select @formattdstring=@formattdstring+'"'+ Code +'",' from Table1
select '['+@formattdstring+']' as formattedstring

干杯!!!