随笔-14  评论-7  文章-1  trackbacks-0

怎樣在查詢結果中加入子序號 ?



如下表:
         key1     key2    time
           1          01       t1
           2          01       t2
           3          02       t21
           4          02       t22

想查詢後得到下面結果 :
 
        key1     key2    time      子序號
           1          01       t1          1
           2          01       t2          2
           3          02       t21        1
           4          02       t22        2

在結果中加入子序號 , 向各位請教 !!!

0
0
(请您对文章做出评价)
« 上一篇:Table查詢 不完全相等問題
» 下一篇:用delphi写excel文件
posted on 2006-01-13 11:44 yide 阅读(254) 评论(1)  编辑 收藏

评论:
#1楼 2006-01-19 10:59 | Yin Peng[未注册用户]
我记得多年前在用SQL Server 6.5时只需要两个局部变量和一条SELECT语句就可以了,但是我用同样的方法在SQL Server 2005 Express中试的时候却不成功,错误提示是赋值和取数据不可以混合在一条SELECT语句中。

下面这一段在SQL Server 2005 Express中试过是可行的。使用了一个临时表。

DECLARE @n int
DECLARE @last nvarchar(10) --定义成与key2相同的类型

SELECT key1, key2, time, 0 AS subseq
INTO #tmptable
FROM testtable
ORDER BY key2

UPDATE #tmptable
SET
@n = CASE WHEN @last = key2 THEN @n+1 ELSE 1 END,
subseq = @n,
@last = key2

SELECT * FROM #tmptable

DROP TABLE #tmptable

  回复  引用