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

如何在tsql中将2行转换为列?,sql,tsql,row,Sql,Tsql,Row,我有两行数据,我想把它变成两列, 我尝试了联合语法,但没有成功。 以下是我掌握的数据: 品种1繁殖2 我试图用这个sql转换它 select a.breed union a.breed 但它不起作用 以下是您希望从SQL中获得的内容: 布里1,布里2 您可以使用自联接。这需要一种将行配对在一起的方法(因此,如果有四行,则一个结果中得到1和2,另一个结果中得到3和4,而不是另一个组合) 我假设在Id列中有顺序编号的行,奇数编号的行与一个更大的偶数Id配对: select odd.Data as

我有两行数据,我想把它变成两列, 我尝试了联合语法,但没有成功。 以下是我掌握的数据:

品种1繁殖2

我试图用这个sql转换它

select a.breed union a.breed
但它不起作用

以下是您希望从SQL中获得的内容:

布里1,布里2


您可以使用自联接。这需要一种将行配对在一起的方法(因此,如果有四行,则一个结果中得到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的使用更灵活。

聚合查询如何

SELECT 
  [breed1], 
  [breed2]]
FROM 
( 
  SELECT 'breed1' myColumn 
  union 
  select 'breed2' 
) AS SourceTable 
PIVOT 
( 
  AVG(mySecondColumn) FOR       
  myColumn IN ([breed1], [breed2]]) 
)   AS PivotTable; 
select min(breed) as breed1, max(breed) as breed2
from t;

请添加示例数据。扩展到7行或8行数据,然后向我们展示示例数据和预期结果。搜索PIVOTIf,您相信这是满足您需要的答案,请考虑通过点击绿色蜱来检查答案。