這是我之前的問題here的延續。根據列值優先選擇唯一記錄
在下面的例子:
id PRODUCT ID COLOUR
1 1001 GREEN
2 1002 GREEN
3 1002 RED
4 1003 RED
給定的產品ID,我只想檢索一個紀錄 - 與綠色,如果存在的話,或紅色的除外。這聽起來像我需要以某種方式使用DISTINCT,但我不知道如何提供優先級規則。
非常基本的我敢肯定,但我的SQL技能比生鏽更多..
編輯:謝謝大家。還有一個問題:如何做到這一點,以處理多個記錄,即。如果WHERE子句返回的不僅僅是一條記錄?限制1將限制整個集合,而我想要的僅限於每個產品中。例如,如果我有像SELECT * FROM table那樣的產品id like「1%」...我如何檢索每個獨特的產品,但仍然尊重顏色優先級(綠色>紅色)?
謝謝,你能看看編輯以及? – lucianf 2012-08-11 15:57:24
請參閱上面的修改。其他SQL有行編號功能,這使得這更容易,但SQLite缺乏。 – podiluska 2012-08-12 12:40:39
再次感謝,我從來沒有想到它會是這個複雜! – lucianf 2012-08-13 07:23:01