这是我的代码
SELECT IDENTITY(INT, 1, 2) AS Orderid , CODE , [DATE] , [TIME] INTO #Temp
FROM Table1 ORDER BY CODE ,[DATE],[TIME]
SELECT * FROM #Temp
此代码的输出如下:
但我需要以下输出:
那我该怎么做......
答案 0 :(得分:1)
除了不生成由CODE
分区的序列号之外,您的方法不保证记录将按照选择的顺序插入#temp
。
您可以使用ROW_NUMBER
在INSERT
:
SELECT 2 * ROW_NUMBER() OVER (PARTITION BY CODE
ORDER BY CODE,[DATE], [TIME]) - 1,
CODE, [DATE], [TIME]
INTO #Temp
FROM Table1
ORDER BY CODE,[DATE],[TIME]
这将生成序列号:
ID CODE, DATE
--------------
1, 2210, ...
3, 2210, ...
5, 2210, ...
1, 10484, ...
3, 10484, ...
5, 10484, ...
7, 10484, ...
答案 1 :(得分:0)
使用此
SELECT (ROW_NUMBER() OVER (ORDER BY CODE ,[DATE],[TIME])) AS Orderid ........