【问题标题】:Order by statement - two columns按语句排序 - 两列
【发布时间】:2021-08-14 11:02:12
【问题描述】:

我有一个来自表 x 的 SQL 选择查询。在这个查询中,我从表 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'

【问题讨论】:

  • 这不是ORDER BY ISNULL(BPName,BPName2)...吗?
  • 两列都为NULL的情况如何?

标签: sql sql-server select null sql-order-by


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    相关资源
    最近更新 更多