SQL order by子句的情况

时间:2012-03-19 15:16:09

标签: sql-server-2008

我需要SQL ORDER BY子句的帮助。在下面的表格中,我想订购所有商品,以便子商品紧跟其父商品。例如,在下面的列表中,最后一项的ParentId值为17,并且跟随ParentId为23的项目,但它实际上应与其他ParentId=17项目一起显示。< / p>

enter image description here

以类似的方式,如果我稍后添加ParentId = 9行,则它应显示为ParentId为9且不在列表末尾的项目。

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

1 个答案:

答案 0 :(得分:1)

尝试以下查询:

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