SELECT *
FROM your_table
ORDER BY
CASE
WHEN date_field1 IS NOT NULL THEN date_field1
WHEN date_field2 IS NOT NULL THEN date_field2
ELSE NULL
END,
date_field1 NULLS FIRST,
date_field2 NULLS FIRST;
这里的your_table
是你的表名,date_field1
和date_field2
是你想要合并排序的日期字段。这个查询会首先考虑date_field1
,如果它不为空,则按照它排序。如果date_field1
为空,则考虑date_field2
,如果date_field2
不为空,则按照它排序。如果两个字段都为空,则将其放在最后。
这里使用了NULLS FIRST
来确保在排序时将NULL值放在非NULL值之前。