次のコードは、有効期限が切れていない行を一番上に、次に有効期限が不明な行を、最後に既に有効期限が切れている行を含むリストを作成しています (すべて昇順)。問題は、既に期限切れの行の最後のブロックを降順にしたいので、他のトップブロックの順序を変更せずに、最近期限切れになった行をそのブロックの上に表示することです。
基本的に、同じレコードセット内に 2 つの「ORDER BY」句を組み込む方法を見つけようとしています...
何か案は?ありがとう
SELECT *
FROM prueba
WHERE UPPER(CONCAT(Company,Deal,keywords,Type,Expiry,Name)) LIKE UPPER(%s)
ORDER BY (CASE
WHEN prueba.Expiry = 'UNKNOWN' THEN 1
WHEN prueba.Expiry < CURRENT_DATE THEN 2
END)
, prueba.Expiry ASC