我的结果集在表变量中如下所示(抱歉格式不佳):
RootID | RootName | ChildId | ChildName
1 | Bob | null | null
1 | null | 4 | Tim
1 | null | 6 | Cindy
2 | Alice | null | null
2 | null | 7 | Joe
2 | null | 9 | Jack
3 | Frank | null | null
3 | null | 17 | ken
我想做的是按 RootName ASC 然后 ChildName ASC 对它们进行排序,以按字母顺序排列它们。有什么建议吗?预先感谢
如果它适用于您的应用程序,我会重写查询以消除空值。我忍不住这么想
RootID | RootName | ChildId | ChildName
1 | Bob | 4 | Tim
1 | Bob | 6 | Cindy
2 | Alice | null | Joe
2 | Alice | 4 | Jack
3 | Frank | 7 | ken
合作起来会更容易。 (呃,Alice/Joe 的 NULL 是一个错字,对吧?)
呃...这个怎么样?
select * from yourtable order by RootName ASC, ChildName ASC
您可以使用
NULLS LAST
和 NULLS FIRST
(至少在 Oracle 中)来控制空值应放置在排序中的位置。
select rec_id,gr_id from jegad order by 1 desc
select isnull(rec_id,'-'),isnull(gr_id,'-') from jegad order by 1 desc
按情况排序,当 Col 为 NULL 时,然后 1 Else 0 结束,Col