如何将两列堆叠成单列中的行?
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
我有以下 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