【问题标题】:Order against two columns at the same time (intersecting)同时对两列排序(相交)
【发布时间】:2010-05-25 17:41:25
【问题描述】:

我有一个包含 CommonNameFirstName 字段的表格。只有任何一个字段都有数据,永远不会有数据。有没有办法在 SQL Server 上以交叉方式对行进行排序?

例子:

CommonName FirstName
Bern
           Wade
Ashley
Boris
           Ayana

我想要这样排列的记录:

CommonName FirstName
Ashley
           Ayana
Bern
Boris
           Wade

这可能吗?如果可以,怎么做?

【问题讨论】:

    标签: sql sorting sql-order-by


    【解决方案1】:

    使用CASE statement 选择该行的值并使用ORDER BY 选择该行。

    【讨论】:

      【解决方案2】:
      ORDER BY
        CASE
          WHEN CommonName is null
          THEN FirstName
          ELSE CommonName
        END
      

      【讨论】:

        【解决方案3】:

        ORDER BY CommonName + FirstName,如果它们可以为空,则带有适当的 ISNULL(<column>, '')

        【讨论】:

          【解决方案4】:
          order by coalesce(CommonName, FirstName)
          

          【讨论】:

            猜你喜欢
            • 2012-10-20
            • 2021-02-27
            • 1970-01-01
            • 2019-08-18
            • 2023-01-19
            • 1970-01-01
            • 2015-09-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多