在具有不同值引用 sql 的相同 table 服务器中查找
Look up in same table with different value reference sql server
我需要一些代码方面的帮助。我有 TableA,其中 Btime 有时为 0。
TableA
ID Dest Orig Bcode Btime
FB8E GD TR KL 3600
AC2A BO VR KS 2700
65B3 GD AE LH 7800
AF85 NY BU NWG 3300
B32A BO VR KS 0
B42L NY BU NWG 0
F66D BO VR KS 2700
N20S NY BU NWG 3300
我需要从同一个 table 中获取 Btime 的值,其中 Dest、Orig 和 Bcode 与 Btime 为 0 的行中的相同,并将 Btime 转换为 HH:MM:SS
结果将是:
ID Dest Orig Bcode Btime
FB8E GD TR KL 01:00:00
AC2A BO VR KS 00:45:00
65B3 GD AE LH 02:10:00
AF85 NY BU NWG 00:55:00
B32A BO VR KS 00:45:00
B42L NY BU NWG 00:55:00
如果有多个值可以满足这个条件,我如何才能为我的整个 table 获取这个?
版本是 Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64)
您可以将值转换为 time
格式并使用 window 函数填充值:
select t.*,
dateadd(second, new_btime, convert(time, 0)) as new_btime_formatted
from (select t.*,
(case when btime = 0
then max(btime) over (partition by dest, orig, bcode)
else btime
end) as new_btime
from t
) t;
我需要一些代码方面的帮助。我有 TableA,其中 Btime 有时为 0。
TableA
ID Dest Orig Bcode Btime
FB8E GD TR KL 3600
AC2A BO VR KS 2700
65B3 GD AE LH 7800
AF85 NY BU NWG 3300
B32A BO VR KS 0
B42L NY BU NWG 0
F66D BO VR KS 2700
N20S NY BU NWG 3300
我需要从同一个 table 中获取 Btime 的值,其中 Dest、Orig 和 Bcode 与 Btime 为 0 的行中的相同,并将 Btime 转换为 HH:MM:SS
结果将是:
ID Dest Orig Bcode Btime
FB8E GD TR KL 01:00:00
AC2A BO VR KS 00:45:00
65B3 GD AE LH 02:10:00
AF85 NY BU NWG 00:55:00
B32A BO VR KS 00:45:00
B42L NY BU NWG 00:55:00
如果有多个值可以满足这个条件,我如何才能为我的整个 table 获取这个?
版本是 Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64)
您可以将值转换为 time
格式并使用 window 函数填充值:
select t.*,
dateadd(second, new_btime, convert(time, 0)) as new_btime_formatted
from (select t.*,
(case when btime = 0
then max(btime) over (partition by dest, orig, bcode)
else btime
end) as new_btime
from t
) t;