Sqlite3 - 将多个结果分成不同的列

时间:2016-08-10 05:01:18

标签: sql sqlite

我是SQL新手,需要一些帮助,可以将给定值的多个结果选择到不同的列中。

我的部分表格看起来像这样 -

DevID   ConnID   Other Columns ...
 D1       Q1  
 D1       Q1
 D1       Q1
 D1       Q2
 D1       Q2
 D1       Q2
 D2       Q3  
 D2       Q3
 D2       Q3
 D2       Q4
 D2       Q4
 D2       Q4
...       ...

我希望结果SELECT查询为 -

DevID    PrimConnID    SecConnID  OtherColumns ...
 D1         Q1            Q2
 D2         Q3            Q4
...         ...           ...            ...

这是否可以使用标准SQL? Aplologies如果不清楚 - 我真的是新手。

1 个答案:

答案 0 :(得分:-1)

试试这个:

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

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.ConnID) 
            FROM #YourTableName c
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query = 'SELECT DevID, ' + @cols + ' from 
            (
                select DevID
                ,ConnID
                from #YourTableName
           ) x
            pivot 
            (
                 max(ConnID)
                for ConnID in (' + @cols + ')
            ) p '


execute(@query)