Sql server tsql将值放入单行

Sql server tsql将值放入单行,sql-server,tsql,row,Sql Server,Tsql,Row,这是我的问题: 给定插入游标的select语句的结果, 如何将这些值放在一行中 举个例子 a b c 如何实现a、b、c?将光标的结果插入临时表。下面是我的示例,但您必须用光标替换它 SELECT 'a' AS [Col1] INTO #Table1 INSERT INTO #Table1 SELECT 'b' INSERT INTO #Table1 SELECT 'c' INSERT INTO #Table1 SELECT 'd' 创建动态轴以显示结果 DECLARE @cols

这是我的问题:

给定插入游标的select语句的结果, 如何将这些值放在一行中

举个例子

 a
 b
 c

如何实现a、b、c?

将光标的结果插入临时表。下面是我的示例,但您必须用光标替换它

SELECT 'a' AS [Col1]
INTO #Table1

INSERT INTO #Table1
SELECT 'b'
INSERT INTO #Table1
SELECT 'c'
INSERT INTO #Table1
SELECT 'd'
创建动态轴以显示结果

DECLARE @cols AS NVARCHAR(MAX),
        @query  AS NVARCHAR(MAX);

SET @cols = STUFF
            (
               (
                  SELECT DISTINCT ',' + QUOTENAME(c.[Col1]) 
                  FROM   #Table1 c
                  FOR XML PATH(''), TYPE
               ).value('.', 'NVARCHAR(MAX)') 
               ,1,1,''
            )

SET @query = 'SELECT ' + @cols + ' FROM
             (
                SELECT [Col1]
                FROM   #Table1
             ) x
            PIVOT
            (
                MAX([Col1])
                FOR [Col1] IN(' + @cols + ')
            ) p '


EXECUTE(@query)
放下临时表

DROP TABLE #Table1
简单地说:

SUBSTRING((SELECT DISTINCT ',' + [ColumnName] FROM TableName FOR XML PATH('')),2,4000)

你的第一个问题应该是“我需要使用光标吗?”