Sql 有条件地将值从一行复制到另一行
我想使用条件写选择将值从一行复制到另一行,并且该条件将按TRANSACTIONTYPE执行。 每个订单id的每一行都应具有TRANSACTIONTYPE=1的值 我的示例表Sql 有条件地将值从一行复制到另一行,sql,tsql,Sql,Tsql,我想使用条件写选择将值从一行复制到另一行,并且该条件将按TRANSACTIONTYPE执行。 每个订单id的每一行都应具有TRANSACTIONTYPE=1的值 我的示例表 ID TRANSACTIONTYPE ORDERID VALUE 1 1 XXX 100 2 2 XXX 120 3 4 XXX 140 4 2 XXX 120 5 1
ID TRANSACTIONTYPE ORDERID VALUE
1 1 XXX 100
2 2 XXX 120
3 4 XXX 140
4 2 XXX 120
5 1 YYY 500
6 2 YYY 400
我对select Station的期望:
ID TRANSACTIONTYPE ORDERID VALUE
1 1 XXX 100
2 2 XXX 100
3 4 XXX 100
4 2 XXX 100
5 1 YYY 500
6 2 YYY 500
我已尝试为此编写相同的选择语句,但失败了您可以使用窗口功能:
select t.*,
max(case when transactiontype = 1 then value end) over (partition by orderid) as new_value
from t;
如果您正在考虑更新值,那么我将挑战数据模型。在这种情况下,该值可能应该存储在
orders
表中,其中定义了orderid
。非常感谢。完美地工作