Sql server 2008 SQL order by子句的大小写

Sql server 2008 SQL order by子句的大小写,sql-server-2008,Sql Server 2008,我需要SQLorderby子句的帮助。在下表中,我想对所有项目进行排序,以便子项目立即跟随其父项目。例如,在下面的列表中,最后一个项目的ParentId值为17,并且紧跟在ParentId为23的项目之后,但它实际上应该与其他ParentId=17项目一起出现 以类似的方式,如果我以后添加了一行ParentId=9,它应该与ParentId为9的项目一起出现,而不是在列表的末尾 如何对项目进行排序以获得必要的输出?尝试以下查询: SELECT * FROM yourtable ORDER BY

我需要SQL
orderby
子句的帮助。在下表中,我想对所有项目进行排序,以便子项目立即跟随其父项目。例如,在下面的列表中,最后一个项目的
ParentId
值为17,并且紧跟在
ParentId
为23的项目之后,但它实际上应该与其他
ParentId=17
项目一起出现

以类似的方式,如果我以后添加了一行
ParentId=9
,它应该与
ParentId
为9的项目一起出现,而不是在列表的末尾


如何对项目进行排序以获得必要的输出?

尝试以下查询:

SELECT *
FROM yourtable
ORDER BY
  ISNULL(NULLIF(ParentId, 0), Id),
  Id  /* or maybe Level? */

请尝试以下查询:

SELECT *
FROM yourtable
ORDER BY
  ISNULL(NULLIF(ParentId, 0), Id),
  Id  /* or maybe Level? */

到目前为止,您尝试了什么查询?请同时发布您的表结构。我已经读了两遍,我不知道您想做什么。注释:有两个以上的零,您看到的很可能是插入顺序。另外,这是否按照您所希望的方式格式化?假设您希望保留0的顺序,那么表中确定该顺序的另一个字段是什么?您不能使用“自然”未排序的顺序(即没有排序依据的选择),因为您不清楚要查找什么。你能公布预期的结果吗?我对你的问题稍作了解释。请检查我的编辑,以防我遗漏或出错。到目前为止,您尝试了什么查询?请同时发布您的表结构。我已经读了两遍,我不知道您想做什么。注释:有两个以上的零,您看到的很可能是插入顺序。另外,这是否按照您所希望的方式格式化?假设您希望保留0的顺序,那么表中确定该顺序的另一个字段是什么?您不能使用“自然”未排序的顺序(即没有排序依据的选择),因为您不清楚要查找什么。你能公布预期的结果吗?我对你的问题稍作了解释。请检查我的编辑,以防我遗漏或出错。