通過

2017-03-06 62 views
-1


選擇一個組,在第一線,我得到這個表:
enter image description here
我得到了這個請求:通過

SELECT FirstId,SecondId 
FROM Table 
GROUP BY FirstId,SecondId 
ORDER BY CASE 
    WHEN SecondId= 18 
     THEN 1 
     ELSE 2 
END 

所以我得到了這樣的結果:
enter image description here
但我想只有由FirstId分組的行和像這樣的第一個請求排序:
enter image description here

+0

爲什麼?期望結果背後的邏輯是什麼? – Rahul

+1

您需要某種時間戳或rowid才能獲得「第一次請求」。表格數據是無序的。沒有「第一次請求」... – jarlh

+0

你能詳細說明嗎? –

回答

1

這是你想要的嗎?

SELECT FirstId, 
     (CASE WHEN SUM(CASE WHEN SecondId = 18 THEN 1 ELSE 0 END) > 0 
      THEN 18 ELSE MAX(SecondId) 
     END) as SecondId 
FROM Table 
GROUP BY FirstId 
ORDER BY FirstId;