我有一个结果集,在表var中看起来如下所示(抱歉格式不佳):
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命令它们按字母顺序排列。有什么建议?提前致谢
答案 0 :(得分:1)
select * from yourtable order by RootName ASC, ChildName ASC
您可以使用NULLS LAST
和NULLS FIRST
(至少在Oracle中)来控制,应该在排序中放置空值。
答案 1 :(得分:1)
如果它适用于您的应用程序,我会重写查询以摆脱空值。我不禁想到了
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是一个错字,对吗?)
答案 2 :(得分:1)
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其他0结束,结束