SQL Server序列号问题

时间:2010-01-28 15:15:50

标签: sql-server-2008

上周,该社区的Damir Sudarevic帮助此查询生成了序列号。 我有一个问题与这个问题有几个问题。由于某种原因,OrderDetailsID不会显示记录,尽管按顺序指定它。

seq和seqNo下面的查询中的两列显示如下所示的记录

Seq  SeqNO
1A  1
2A  2
2B  2A
2C  2B
3A  3
3B  3A
3C  3B

相反如何获得它如下所示

SeqNo
1
2A
2B
2C
3A
3B
3C

WITH  OrderDetails 
        AS ( SELECT prodcode 
                   ,prodDesc 
                   ,orderID
                   ,OrderDetailID
                   ,DENSE_RANK() OVER ( ORDER BY prodCode) AS [RnkSeq] 
                   ,ROW_NUMBER() OVER ( PARTITION BY prodCode ORDER BY OrderDetailID ) AS [NumSeq] 
             FROM   OrderDetails where orderID=65303 
           ) 
  SELECT  OrderDetailID 
         ,prodcode 
         ,CAST(RnkSeq AS varchar(10)) + CHAR(64 + NumSeq) as Seq
         ,Replace(CAST(RnkSeq AS varchar(10)) + CHAR(63 + NumSeq),'@','') AS SeqNo
         ,orderID  
  FROM    OrderDetails  

2 个答案:

答案 0 :(得分:0)

我没有看到ORDER BY

答案 1 :(得分:0)

在FROM语句后的最后添加:

ORDER BY SeqNo

希望这有帮助。