Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将列记录作为列名_Sql_Sql Server - Fatal编程技术网

Sql 将列记录作为列名

Sql 将列记录作为列名,sql,sql-server,Sql,Sql Server,我有一张桌子: A | B ---+--- a | 1qw b | 2q c | 3s a | 4sd b | 5 c | 6 输出表: a | b | c ---+---+--- 1qw| 2q| 3s 4sd| 5 | 6 如何在sql server中获取输出表。这是一个示例,第一列中可能有3条以上不同的记录 我用过: select a,b,c from (select A,B from TABLE) as P Pivot (max(B) for A in (a,

我有一张桌子:

 A | B
---+---
 a | 1qw
 b | 2q
 c | 3s
 a | 4sd
 b | 5 
 c | 6
输出表:

 a | b | c 
---+---+---
1qw| 2q| 3s 
4sd| 5 | 6
如何在sql server中获取输出表。这是一个示例,第一列中可能有3条以上不同的记录

我用过:

select a,b,c from 
(select A,B from TABLE) as P
Pivot (max(B) for A in (a,b,c)

这只给了我1行(甚至不正确)。

当您使用DDL脚本提供一个完全有效的SQL代码示例(即使没有得到您想要的)时,回答这些类型的问题对您来说是最快也是最容易的,如下所示:

CREATE TABLE #Data( ID INT IDENTITY, A1 CHAR( 1 ), B1 VARCHAR( 5 ))
INSERT INTO #Data
VALUES
( 'a', '1qw' ), ( 'b', '2q ' ), ( 'c', '3s ' ),
( 'a', '4sd' ), ( 'b', '5  ' ), ( 'c', '6  ' )
诀窍是要有一个“组ID”列来标识a、b、c记录的组(“存储桶”):

SELECT *, ROW_NUMBER() OVER( PARTITION BY A1 ORDER BY ID ) AS GroupID
FROM #Data
ORDER BY GroupID
我假设您对ID列具有“位置依赖性”,并且您的组是从ID列的值派生的,即ID=2的b记录与前面ID=1的记录位于同一组中。如果您的初始数据设置不同,那么您需要提出如何分配“组ID”的自己的逻辑

最后一个PIVOT查询:

SELECT *
FROM
( SELECT A1, B1, ROW_NUMBER() OVER( PARTITION BY A1 ORDER BY ID ) AS GroupID
FROM #Data ) AS data
PIVOT(
    MAX( B1 ) FOR A1 IN( [a], [b], [c] )
) AS P
输出:

GroupID              a     b     c
-------------------- ----- ----- -----
1                    1qw   2q    3s 
2                    4sd   5     6  

参考资料:

Research
PIVOT
我想这将获得至少2倍的反对票,最好是增加一些努力或尽快删除这个问题,否则这几乎就要实现了。我不知道为什么这会被投票关闭,因为不清楚你在问什么?问题很清楚,这只是一个非常简单的问题。@Alex你能给我一个代码片段/链接吗。“我看着pivot,不幸的是我无法理解。”KingKing善意地向我解释,我如何才能更努力地解释我认为已经完美解释的东西。