該解決方案避免了unpivot,只是很多切&粘貼&修改:基於@ VKP的&
SELECT
dt.*,
CASE maxscore -- GREATEST on all but the highest value,
-- simplified to a "Valued Case" based on mathguy's comment
WHEN score1 THEN Greatest(score2, score3, score4, score5)
WHEN score2 THEN Greatest(score1, score3, score4, score5)
WHEN score3 THEN Greatest(score1, score2, score4, score5)
WHEN score4 THEN Greatest(score1, score2, score3, score5)
ELSE Greatest(score1, score2, score3, score4)
END
FROM
(
SELECT t.*,
Greatest(Score1,Score2,Score3,Score4,Score5) AS maxscore
FROM tab t
) dt
@ mathguy的評論沒有Derived Table/Inline View:
SELECT
t.*,
Greatest(Score1,Score2,Score3,Score4,Score5) as Highest1_value,
CASE Greatest(Score1,Score2,Score3,Score4,Score5)-- GREATEST on all but the highest value
WHEN score1 THEN Greatest( score2,score3,score4,score5)
WHEN score2 THEN Greatest(score1, score3,score4,score5)
WHEN score3 THEN Greatest(score1,score2, score4,score5)
WHEN score4 THEN Greatest(score1,score2,score3, score5)
ELSE Greatest( score1,score2,score3,score4)
END as Highest2_value
FROM tab t
你有每行的標識符嗎? –
在你的第二行中,highest2_value應該是17我想......對嗎? – Teja
vkp,是的,我有唯一的ID。 Teja,No,Score1和Score2都有20個,所以他們是最高的數字 – Rocco