» »

T-SQL Partition by v SQL2000

T-SQL Partition by v SQL2000

nurmaln ::

Za rešitev enega problema nujno rabim spodnjo funkcijo, ko sem jo našel se bil vesel k radio...
Potem sem jo hotel uporabiti na bazi, pa mi je server povedal da SQL2000 te funkcije ne pozna (tetiral sem na SQL2005)

Se komu sanja kako bi to funkcijo predelal, da bi dobil isti rezultat v SQL2000?


SELECT [No_]
,[Text]
,row_number()
over ( partition by [No_]
order by [Line No_] ) as seqno

from [Test].[dbo].[ETL]

frudi ::

preberi si tole, morda bo pomagalo. Ampak kot piše v članku - dobro dela samo za majhne sete podatkov, kjer rangiraš unique stolpec (torej stolpec, v katerem se podatki ne ponavljajo).

Lahko tudi uporabiš nekaj takega:
SELECT (SELECT COUNT(*) FROM dbo.ETL AS C WHERE C.[No_] <= E.[No_]) AS ROW_NUMBER, E.[No_], E.[Text]
FROM dbo.ETL AS E
ORDER BY E.[No_]

Tudi za to velja, da deluje le, če rangiraš po neponavljajočih podatkih.

Še ena rešitev, ki deluje v vsakem primeru:
- narediš začasno tabelo, z enakimi stolpci, kot dbo.ETL + dodaten IDENTITY stolpec
- narediš select željenih podatkov, pravilno sortiranih, ampak jih ne vrneš, temveč insertaš v to začasno tabelo
- vrneš select iz te začasne tabele, kjer ti dodaten IDENTITY stolpec predstavlja številko vrstice
- zbrišeš začasno tabelo
Seveda pa moraš v tem primeru vse to narediti znotraj stored procedure.
1ACDoHVj3wn7N4EMpGVU4YGLR9HTfkNhTd... in case I've written something useful :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

SQL uporaba imena spremenljivke stringu

Oddelek: Programiranje
7976 (870) BlueKnight
»

SQL težava

Oddelek: Programiranje
365149 (4431) joseti
»

T-SQL FIRST / TOP / MAX...

Oddelek: Programiranje
61494 (1494) frudi
»

[T-SQL] Kako vnest podatek v bazo in da ti hkrati vrne id?

Oddelek: Programiranje
162891 (2609) dmok
»

Vprašanje za SQL poznavalce

Oddelek: Programiranje
171224 (1049) zdravc

Več podobnih tem