这是我之前的问题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