如何在tsql中将2行转换为列?

时间:2018-12-13 07:38:42

标签: sql tsql row

我有2行数据,我想使其成为2列, 我尝试了联合语法,但是没有用。 这是我的数据:

  

繁殖1个品种2

我尝试使用此sql进行转换

select a.breed union a.breed

但是没有用。

这是您想要从SQL中获得的:

  

品种1,品种2

3 个答案:

答案 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;