Sql server 2008 基于标识列将列数据转换为行
我有一张这样的桌子:Sql server 2008 基于标识列将列数据转换为行,sql-server-2008,Sql Server 2008,我有一张这样的桌子: ID Time-in-out 1122 08:00 1122 17:00 221 09:00 221 15:00 ID Time-in Time-Out 1122 08:00 17:00 221 09:00 15:00 我需要这样的输出: ID Time-in-out 1122 08:00 1122 17:00 221 09:00 221 15:00
ID Time-in-out
1122 08:00
1122 17:00
221 09:00
221 15:00
ID Time-in Time-Out
1122 08:00 17:00
221 09:00 15:00
我需要这样的输出:
ID Time-in-out
1122 08:00
1122 17:00
221 09:00
221 15:00
ID Time-in Time-Out
1122 08:00 17:00
221 09:00 15:00
我该怎么做?简单到:
CREATE TABLE tab(id INT, time_in_out TIME(0));
INSERT INTO tab(id, time_in_out)
SELECT 1122, '08:00'
UNION ALL
SELECT 1122, '17:00'
UNION ALL
SELECT 221, '09:00'
UNION ALL
SELECT 221, '15:00'
SELECT
[id],
[time_in] = MIN(time_in_out),
[time_out] = MAX(time_in_out)
FROM tab t
GROUP BY id
或者,您可以使用PIVOT