在一个表中按父子关系“ItemCode” - “ItemReplacementCode”排序

时间:2014-05-22 00:22:18

标签: sql-server hibernate select group-by sql-order-by

假设我们有包含ItemCodeItemReplacementCode列的产品记录。 因为我们正在谈论一个表:

  • ItemCode不是主键

  • ItemReplacementCode不是外键。

它们只是varchars列。

我希望在选择结果中看到:

id,     productname, itemcode, replacementCode
99,     dell ###,   a1234X,    null
10034,  dell ###,   1233bX,    a1234X
10024,  dell ###,   1232X,    1233bX
95,     dell ###,   999ws,    null
96,     sony ###,   327b,     null

等等。请注意itemCodereplacementCode对于排序不是按字母顺序排列。

您能否指导我如何选择产品,以便按照替换代码对其进行分组和排序(请注意,不按标量分组)。 当然,我们正在谈论的是"亲戚"用" orphan"中的一个sql语句检索没有替代品的产品。 不要犹豫要求澄清。 我们赞赏对类似讨论的参考。

我只是在不损害性能的情况下才会增加额外的休眠关系。

1 个答案:

答案 0 :(得分:0)

我不是100%肯定你在寻找什么,但这里有一些选择。

只需按替换代码订购

SELECT id,     productname, itemcode, replacementCode
FROM ItemTable
ORDER BY replacementCode

我看到替换代码中有NULL值。如果您想按商品订购,但如果有的话,请使用替换代码

SELECT ISNULL(replacementCode ,itemcode) AS NewItemCode ,id, productname
FROM ItemTable
ORDER BY ISNULL(replacementCode ,itemcode)