對於此簡化的表結構(請參閱fiddle),我需要刪除爲相同ID輸出的第二行。單個ID的行值可能僅爲「1」。TSQL - CASE創建兩個列中的一個
CREATE TABLE lookup
(
id int,
field varchar(20),
row varchar(20),
value varchar(50)
);
INSERT INTO lookup
(id,field, row, value)
VALUES
(1,'55', '1', '1XYZ'),
(1,'55', '2', '2XYZ'),
(2,'55', '1', '3XYZ');
CREATE TABLE output
(
id int,
value_1 varchar(50),
value_2 varchar(50)
);
INSERT INTO output
(id, value_1, value_2)
VALUES
(1, '1XYZ', '2XYZ'),
(2, '3XYZ', null);
-- wrong
select id
,case when (field = 55 and row = 1) then value END AS value_1
,case when (field = 55 and row = 2) then value END AS value_2
from lookup;
希望你能告訴我如何。
謝謝。
是行數總是要1或2相同的id和領域? 對於id = 1和field = 55,可能row = 3,value = 4XYZ? –