我有以下表格:如何將每2行轉換爲1行?
CREATE TABLE source_table (
id int IDENTITY(1, 1) NOT NULL,
category varchar(255) NULL,
item int NULL,
counter int NULL,
length int NULL
);
CREATE TABLE dest_table(
id int IDENTITY(1, 1) NOT NULL,
from_item [int] NULL,
to_item [int] NULL,
length [int] NULL
);
源表包含以下記錄:
INSERT INTO source_table SELECT 'A', 100, 1, 0
INSERT INTO source_table SELECT 'A', 101, 2, 10
INSERT INTO source_table SELECT 'A', 102, 3, 5
INSERT INTO source_table SELECT 'A', 103, 4, 7
INSERT INTO source_table SELECT 'A', 104, 5, 12
INSERT INTO source_table SELECT 'B', 101, 1, 0
INSERT INTO source_table SELECT 'B', 111, 2, 15
INSERT INTO source_table SELECT 'B', 114, 3, 6
INSERT INTO source_table SELECT 'B', 117, 4, 13
INSERT INTO source_table SELECT 'B', 119, 5, 8
從源表中的行需要以這樣的方式進行改造,以使每個記錄目標表將代表來自源表的2行。
如何在目標表中轉換上述行的正確SQL語法如下所示?
100, 101, 10
101, 102, 5
102, 103, 7
103, 104, 12
101, 111, 15
111, 114, 6
114, 117, 13
117, 119, 8
結果集中的最後一行如何成爲'119,5,8'?以及117,\t 119,\t 8'錯過了? – Wanderer
@烏拉斯我的壞。修正了錯字! –
@MartinSmith MS SQL Server 2014 –