以下代码生成一个列表,其中未过期的行在顶部,然后是过期日期未知的行,最后是已经过期的行(所有行都按升序排列)。问题是我希望已过期行的最后一个块按降序排列,因此它会在该块顶部显示最近过期的行,而不会改变其他顶部块的顺序。
基本上,我试图找到一种方法在同一个记录集中合并两个“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