他のフィールドに基づいて、別の順序を取る必要があるクエリがあります。CASE
でステートメントを使用することは可能ORDER BY
です。これまでのところ、正常に機能しています。唯一不可能と思われるのは、昇順/降順の部分を変更することです。
私のクエリ:
SELECT articleid, MIN(createtime) min, MAX(createtime) max
FROM items
GROUP BY articleid
ORDER BY
CASE WHEN logic='foo' THEN min ELSE '0001-01-01 00:00:00' END ASC,
CASE WHEN logic='bar' THEN max ELSE '0001-01-01 00:00:00' END DESC;
動作しますが、このようなフォームを作成できるかどうか疑問に思っていました (これが機能しないことはわかっています):
SELECT articleid, MIN(createtime) min, MAX(createtime) max
FROM items
GROUP BY articleid
ORDER BY
CASE WHEN logic='foo' THEN min ASC ELSE max DESC END;