如何将两列堆叠成单列中的行?

How to stack two columns into rows in a single column?

我有以下 table 名为 'model',我想要 sql 服务器代码来实现结果。

我想要的输出应该如下,

如有任何帮助,我们将不胜感激。

我喜欢使用 apply 来达到这个目的:

select v.model, t.discount
from t cross apply
     (values (model1), (model2)) v(model);

apply 是一个非常强大的结构,它实现了称为 "lateral joins" 的东西。还有其他方法可以反透视此类数据,但我的反透视是对横向连接的一个很好的介绍。

您可以试试这个 - 只是另一种简单的方法:)

SELECT ModelA, Discount
from table1

UNION 

SELECT ModelB, Discount
from table1

您需要UNION ALL

select modela as model, discount from model
union all
select modelb, discount from model