tdj*_*jdj 5 sql t-sql sql-server sql-server-2000
我有一个T-SQL select语句,我想自动增加其中的列(数据库中不存在)
select dbo.a, dbo.b, dbo.c, select @d:=1; @increment:=@increment+1 AS d
Run Code Online (Sandbox Code Playgroud)
这可能吗?
D S*_*ley 13
假设您使用的是SQL 2005或更高版本:
SELECT dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER(ORDER BY GETDATE()) AS d
Run Code Online (Sandbox Code Playgroud)
在从DB返回的行中对行进行排序.如果要指定订单,可以这样做:
SELECT dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER(ORDER BY dbo.a) AS d
Run Code Online (Sandbox Code Playgroud)
对于SQL 2000及更早版本,您需要一个唯一的值来按顺序排序:
SELECT dbo.a, dbo.b, dbo.c, (SELECT COUNT(*) FROM dbo d2 WHERE d2.a <= dbo.a) AS d
FROM dbo
Run Code Online (Sandbox Code Playgroud)
或者如果您不需要单个SELECT:
SELECT IDENTITY(int,1,1) ID, dbo.a, dbo.b, dbo.c
INTO #Temp
FROM dbo
SELECT * FROM #Temp
Run Code Online (Sandbox Code Playgroud)