我想从同一个表中获取数据,但是根据第三个字段的值按2个不同的字段排序
即
SELECT * FROM MyTable
WHERE Status = 0
ORDER BY SortOrder
UNION
SELECT * FROM MyTable
WHERE Status = 1
ORDER BY ModifiedAt DESC
当然,我不能在UNION中有2个ORDER BY,所以想知道是否有更好的(性能方面)方式而不必求助于2个数据库查询 - 可能通过某种子查询?
答案 0 :(得分:1)
您可以按顺序使用case
select *
from YourTable
where Status in (0, 1)
order by Status,
case when Status = 0 then SortOrder end,
ModifiedAt desc