+ Antworten
Ergebnis 1 bis 6 von 6

Thema: Satznummer im SQL erzeugen

  1. #1
    mkuis ist offline Neuer Benutzer
    Registriert seit
    20.08.2009
    Ort
    Bonn
    Beiträge
    26

    Standard Satznummer im SQL erzeugen

    Hallo,

    gibt es eine möglich, in einer Spalte des Ergebnisse eine durchlaufende "Satznummer" zu erzeugen??? Dass würde mir bei der Kombination eines
    Insert into table2 select a,b,c from table1
    helfen.

    leider ist es nicht damit getan, in table2 das Feld als serial anzulegen....

    Vielleicht weiß ja jemand Rat...

    Gruß

    mkuis

  2. #2
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    102

    Standard

    Wenn Du 8.4 verwendest ist das ganz einfach:
    Code:
    SELECT row_number() over (), a, b, c 
    FROM my_table;
    
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

  3. #3
    akretschmer ist offline Erfahrener Benutzer
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    4.118

    Standard

    Zitat Zitat von mkuis Beitrag anzeigen
    Hallo,

    gibt es eine möglich, in einer Spalte des Ergebnisse eine durchlaufende "Satznummer" zu erzeugen??? Dass würde mir bei der Kombination eines
    Insert into table2 select a,b,c from table1
    helfen.

    leider ist es nicht damit getan, in table2 das Feld als serial anzulegen....

    Vielleicht weiß ja jemand Rat...

    Gruß

    mkuis
    Was genau willst Du erreichen, was genau hast Du versuchst, und was genau ist passiert?

    Hint: Dinge wie row_number() existieren in/ab 8.4, aber ich sehe noch nicht wirklich, wo genau Du das brauchst und warum ein serial nicht auch in diesem Fall helfen sollte.


    Andreas
    --
    Freut sich auf CLT
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    http://www.amazon.de/gp/registry/2APKFICAIYMWB

  4. #4
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    102

    Standard

    Zitat Zitat von akretschmer Beitrag anzeigen
    Hint: Dinge wie row_number() existieren in/ab 8.4, aber ich sehe noch nicht wirklich, wo genau Du das brauchst
    Ich dachte an sowas:
    Code:
    INSERT INTO table2 (lfd_nr, a, b, c)
    SELECT row_number() over (), a, b, c 
    FROM tabl1
    
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

  5. #5
    akretschmer ist offline Erfahrener Benutzer
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    4.118

    Standard

    Zitat Zitat von castorp Beitrag anzeigen
    Wenn Du 8.4 verwendest ist das ganz einfach:
    Code:
    SELECT row_number() over (), a, b, c 
    FROM my_table;
    
    Schon klar, aber das geht auch mit einer Sequence.

    Andreas, Brüssel, Europe ;-)
    --
    Freut sich auf CLT
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    http://www.amazon.de/gp/registry/2APKFICAIYMWB

  6. #6
    mkuis ist offline Neuer Benutzer
    Registriert seit
    20.08.2009
    Ort
    Bonn
    Beiträge
    26

    Standard

    Danke, die Funktion row_number war genau das, was ich gesucht habe. Ich habe erst vor zwei Wochen auf 8.4 gewechselt (was sich in der Geschwindigkeit übrigens wirklch gelohnt hat!), und muß mich jetzt wohl mal mit den neuen Window-Funktionen auseinandersetzen.


    Danke für den Tipp!!

+ Antworten

Berechtigungen

  • Es ist dir nicht erlaubt, neue Themen zu verfassen.
  • Es ist dir nicht erlaubt, auf Beiträge zu antworten.
  • Es ist dir nicht erlaubt, Anhänge hochzuladen.
  • Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum