在SQL中按条件排序

时间:2019-04-30 23:47:01

标签: sql

如何按条件订购? 例: 我有其中ready_date存在于其他项目中而没有的项目。 首先,我想让NULL项在以下之后优先保留: 我想做的是这样的:

WHERE ready_date=NULL order by id DESC, WHERE ready_date != NULL order by id ASC

如何执行此操作?

1 个答案:

答案 0 :(得分:2)

您可以按布尔条件下单;在MySQL中在数字上下文中被视为1(true)或0(false)。然后,您可以使用该条件翻转id的符号,以便当条件为true时,它就有效地降序排列,否则升序排列。据我了解,您的问题应该可以解决:

ORDER BY ready_date IS NULL DESC,
         (CASE WHEN ready_date IS NULL THEN -id ELSE id END) ASC

Demo on dbfiddle