Avatar billede rodding Juniormester
08. juli 2004 - 11:46 Der er 11 kommentarer og
1 løsning

Record nummerering ved Select

Hvordan for jeg en kolonne med en fortløbende nummerering af fundne records ved en helt alm. Select sætning. (bare så jeg er fri for at tælle)
Avatar billede arne_v Ekspert
08. juli 2004 - 11:59 #1
Det mener jeg ikke at der er nogen standard SQL løsning på.

Oracle har så vidt jeg husker en løsning.

De fleste lader deres applikation tilføje det.

Hvis man læser gennem rækkerne returneret af query med en while
løkke så er det nemt at tælle en tælle rop for hvert gennemløb.
Avatar billede terry Ekspert
08. juli 2004 - 12:17 #2
If you have a unique column then this is a simple method.

SELECT T1.*, (Select count(*) from tbl1 AS T2 WHERE T2.ID < T1.ID)+1 AS Nr
FROM tbl1 AS T1
ORDER BY T1.ID
Avatar billede simonvalter Praktikant
08. juli 2004 - 12:25 #3
du kan også gøre det med 1 selects

SELECT @myRowNum := 0; // sæt myRowNum til 0

SELECT @myRowNum := @myRowNum +1 AS nr, kontonr, saldo FROM Konto; // tæl op

mysql> select * from Konto;
+---------+-------+
| kontonr | saldo |
+---------+-------+
| 2      | 5003  |
| 4      | 4545  |
+---------+-------+
2 rows in set (0.00 sec)


mysql> SELECT @myRowNum := 0;
+----------------+
| @myRowNum := 0 |
+----------------+
|              0 |
+----------------+
1 row in set (0.00 sec)

mysql> SELECT @myRowNum := @myRowNum +1 AS nr, kontonr, saldo FROM Konto;
+------+---------+-------+
| nr  | kontonr | saldo |
+------+---------+-------+
|    1 | 2      | 5003  |
|    2 | 4      | 4545  |
+------+---------+-------+
2 rows in set (0.01 sec)
Avatar billede simonvalter Praktikant
08. juli 2004 - 12:26 #4
2 selects mente jeg vist =)
Avatar billede arne_v Ekspert
08. juli 2004 - 12:36 #5
den enes er Access/SQLServer specifik og den anden MySQL specifik ikke ?
Avatar billede simonvalter Praktikant
08. juli 2004 - 12:36 #6
woops... jo den er mysql specifik, jeg så ikke lige hvilken katagori jeg var i.
Avatar billede arne_v Ekspert
08. juli 2004 - 12:41 #7
Nu er det jo muligt at det er MySQL.

Så det er godt at få metoden på bordet. Man skal bare gøre
sig klart hvad det er.
Avatar billede arne_v Ekspert
08. juli 2004 - 12:42 #8
Og for en god ordens skyld - i Oracle skulle man bare kunne:

SELECT ROWNUM,felt1,felt2 FROM tabel
Avatar billede terry Ekspert
08. juli 2004 - 19:29 #9
a bit of inut from rodding would be nice!
Avatar billede rodding Juniormester
09. juli 2004 - 11:02 #10
Det er lidt hektisk her inden folk går på ferie, men jeg vender tilbage senere på dagen(forhåbentlig)
Avatar billede rodding Juniormester
14. juli 2004 - 11:47 #11
Tak, det fik jeg til ar virke.
Avatar billede terry Ekspert
14. juli 2004 - 18:36 #12
selv tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester