我有2行数据,我想使其成为2列, 我尝试了联合语法,但是没有用。 这是我的数据:
繁殖1个品种2
我尝试使用此sql进行转换
select a.breed union a.breed
但是没有用。
这是您想要从SQL中获得的:
品种1,品种2
答案 0 :(得分:1)
SELECT
[breed1],
[breed2]]
FROM
(
SELECT 'breed1' myColumn
union
select 'breed2'
) AS SourceTable
PIVOT
(
AVG(mySecondColumn) FOR
myColumn IN ([breed1], [breed2]])
) AS PivotTable;
答案 1 :(得分:0)
您可以使用自我联接。这需要一种将行配对在一起的方法(因此,如果您有四行,则在一个结果中得到1和2,在另一结果中得到3和4,而不是另一组合)。
我将假设您在Id
列中有按顺序编号的行,并且奇数编号的行与更大的偶数Id
配对:
select odd.Data as 'First', even.Data as 'Second'
from TheData odd
inner join TheData even on odd.Id+1 = even.Id
where odd.Id % 2 = 1;
通常,对于更多列,使用pivot
更为灵活。
答案 2 :(得分:0)
聚合查询如何?
select min(breed) as breed1, max(breed) as breed2
from t;