Mam T-SQL SELECT i chcę auto-inkrementacja kolumna w nim (który nie istnieje w bazie danych)automatycznego przyrostu podzapytanie w tsql select
select dbo.a, dbo.b, dbo.c, select @d:=1; @increment:[email protected]+1 AS d
Czy to możliwe ?
Mam T-SQL SELECT i chcę auto-inkrementacja kolumna w nim (który nie istnieje w bazie danych)automatycznego przyrostu podzapytanie w tsql select
select dbo.a, dbo.b, dbo.c, select @d:=1; @increment:[email protected]+1 AS d
Czy to możliwe ?
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
I hav e SQL2000. W inny sposób? – tdjfdjdj
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.
'ROW_NUMBER()' był nowy SQL Server 2005, pO jest za pomocą SQL Server 2000 –
SQL Server 2000 powinien być na emeryturze szybko - nawet w wersji 2005 nie jest oficjalnie wspierany przez MS więcej .... –