如何按日期和时间的顺序设置自动IDENTITY For Temp Table

时间:2018-03-16 06:12:09

标签: sql sql-server sql-server-2012

这是我的代码

SELECT IDENTITY(INT, 1, 2) AS Orderid , CODE , [DATE] , [TIME] INTO #Temp 
FROM Table1  ORDER BY CODE ,[DATE],[TIME]
SELECT * FROM #Temp

此代码的输出如下:

Output for this code is here

但我需要以下输出:

那我该怎么做......

2 个答案:

答案 0 :(得分:1)

除了不生成由CODE分区的序列号之外,您的方法不保证记录将按照选择的顺序插入#temp

您可以使用ROW_NUMBERINSERT

期间生成序列号
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  ........