按语句排序 - 两列

Order by statement - two columns

我有一个来自 table x 的 SQL select 查询。在此查询中,我从 table x 得到 BpName,从标量函数得到 BpName2。如果 BpNamenull,我想按 BpName2 排序,如果不是 null,我想按 BpName 排序。可能吗?

示例:

这些是我的行:

Id    BpName     BpName2
------------------------
 1    NULL       'C'
 2    'A'        NULL
 3    NULL       'B'

我想这样订购:

Id    BpName     BpName2
------------------------
 2    'A'        NULL
 3    NULL       'B'
 1    NULL       'C'

您可以按列的 coalesced 结果排序:

SELECT   *
FROM     mytable
ORDER BY COALESCE(BpName, BpName2)