2012-01-19 13 views

Odpowiedz

13

Zakładając, że używasz SQL 2005 lub nowszy:

SELECT dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER(ORDER BY GETDATE()) AS d 

zamawianie wierszy po ich zwrocie z DB. Jeśli chcesz określić zamówienie można zrobić:

SELECT dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER(ORDER BY dbo.a) AS d 

dla SQL 2000 i wcześniej trzeba unikalną wartość zamówić przez:

SELECT dbo.a, dbo.b, dbo.c, (SELECT COUNT(*) FROM dbo d2 WHERE d2.a <= dbo.a) AS d 
FROM dbo 

lub jeśli nie trzeba pojedynczy SELECT :

SELECT IDENTITY(int,1,1) ID, dbo.a, dbo.b, dbo.c 
INTO #Temp 
FROM dbo 

SELECT * FROM #Temp 
+0

I hav e SQL2000. W inny sposób? – tdjfdjdj

1

myślę, że można wyciągnąć go z czymś takim:

select dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER (order by dbo.a) as d from somewhere; 

Moja odpowiedź zakłada SQL Server 2005+, myślę D Stanley odpowiedź pomoże Ci w 2000.

+1

'ROW_NUMBER()' był nowy SQL Server 2005, pO jest za pomocą SQL Server 2000 –

Powiązane problemy