SQL:在列中生成值字符串

SQL:在列中生成值字符串,sql,string,sql-server-2008-r2,Sql,String,Sql Server 2008 R2,我在sql中遇到了一个愚蠢的问题 我有一个列,列中有一些值 Column 73 74 75 76 77 78 79 80 81 我想把列中的数据转换成字符串 Declare Str as nvarchar(MAX) Set Str = {Some Query}; 我已经编辑了我的问题 其中Str类似于“[73]、[74]、[75]、[76]、[77]、[78]、[79]、[80]、[81]” 我应该对此提出什么疑问

我在sql中遇到了一个愚蠢的问题
我有一个列,列中有一些值

  Column
    73
    74
    75
    76
    77
    78
    79
    80
    81
我想把列中的数据转换成字符串

Declare Str as nvarchar(MAX)
Set Str = {Some Query};
我已经编辑了我的问题
其中Str类似于“[73]、[74]、[75]、[76]、[77]、[78]、[79]、[80]、[81]” 我应该对此提出什么疑问
请推荐我。

试试看

DECLARE @Str AS NVARCHAR(MAX)
SET @Str = STUFF(
(
  SELECT ',' + QUOTENAME([Column])
    FROM table1 
     FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
SELECT @Str list
输出:

| LIST | |----------------------------------------------| | [73],[74],[75],[76],[77],[78],[79],[80],[81] | |名单| |----------------------------------------------| | [73],[74],[75],[76],[77],[78],[79],[80],[81] |
下面是演示

,您需要将数据选择到光标中,然后一次遍历每一行并构建字符串。最好为此编写一个存储过程

差不多

DECLARE #cTmp CURSOR LOCAL FAST_FORWARD FOR 
SELECT myCol FROM myTable

OPEN #cTmp
FETCH NEXT FROM #cTmp INTO @MyVariableForTheColumn

WHILE @@FETCH_STATUS = 0
BEGIN
  --Build the string
  SET @String = @String + @MyVariableForTheColumn + ', '

 FETCH NEXT FROM #cTmp INTO @MyVariableForTheColumn
END
CLOSE #cTmp

DEALLOCATE #cTmp

您可以使用FOR XML命令执行此操作。您可以参考此[link][1][1]:您可以重新表述您的问题吗?这不是很清楚。此外,最好的办法是在列中发布您所拥有的内容以及您想要的输出。我想要输出字符串正如我提到的,查询是正确的,我只是做了一个SQLFIDLE来验证-您得到了什么错误@高迪别忘了在他的名字上加上@。否则将不知道您的答复
declare @s varchar(max) = ''

select @s += '[' + some_col + '],' from some_table

print @s