按语句排序 - 两列
Order by statement - two columns
我有一个来自 table x 的 SQL select 查询。在此查询中,我从 table x 得到 BpName
,从标量函数得到 BpName2
。如果 BpName
是 null
,我想按 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'
您可以按列的 coalesce
d 结果排序:
SELECT *
FROM mytable
ORDER BY COALESCE(BpName, BpName2)
我有一个来自 table x 的 SQL select 查询。在此查询中,我从 table x 得到 BpName
,从标量函数得到 BpName2
。如果 BpName
是 null
,我想按 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'
您可以按列的 coalesce
d 结果排序:
SELECT *
FROM mytable
ORDER BY COALESCE(BpName, BpName2)