我想拆分以下記錄:
DeviceId StartTime EndTime
------------------------------------------------------------
1001 2022-02-12 07:27:00.000 2022-02-12 16:23:00.000
1002 2022-02-14 03:36:00.000 2022-02-14 04:36:00.000
進入:
DeviceId Timestamp State
-------------------------------------------------
1001 2022-02-12 07:27:00.000 1
1001 2022-02-12 16:23:00.000 2
1002 2022-02-14 03:36:00.000 1
1002 2022-02-14 04:36:00.000 2
新State列應基于Timestamp是StartTime( = 1) 還是EndTime( = 2)。
t-sql實作這一目標的查詢是什么?
uj5u.com熱心網友回復:
您可以使用VALUES表值建構式對表進行反透視:
SELECT t.DeviceId, v.[Timestamp], v.[State]
FROM YourTable t
CROSS APPLY (VALUES
(t.StartTime, 1),
(t.EndTime, 2)
) v ([Timestamp], [State])
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/425347.html
上一篇:重力形式自動選擇值
