我有一个表格,其中包含颜色名称(例如蓝绿色)和相关的主要颜色(蓝色)。有时,颜色条目可以与其关联的原色(红色,红色)相同。
如何进行GROUP BY PRIMARY_COLOR,其中每个组的COLOR按字母顺序排列...除非COLOR和PRIMARY_COLOR匹配 - 此条目必须位于分组的顶部。
示例:
COLOR PRIMARY_COLOR
------------------------
teal blue
magma red
sky blue
red red
magenta red
应该结果......
COLOR PRIMARY_COLOR
------------------------
sky blue
teal blue
red red
magenta red
magma red
答案 0 :(得分:4)
Order by (ASSOCIATEDCOLOR = COLOR), ASSOCIATEDCOLOR
答案 1 :(得分:1)
ORDER BY CASE WHEN COLOR=PRIMARY_COLOR THEN 0 ELSE 1 END, PRIMARY_COLOR
答案 2 :(得分:0)
SELECT color, primary_color
FROM colors
ORDER BY
primary_color,
color LIKE primary_color DESC,
color