Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

View durchnummerieren

Dieses Thema im Forum "SQLite" wurde erstellt von Wolf-Tilmann, 1 August 2013.

  1. Wolf-Tilmann

    Wolf-Tilmann Aktiver Benutzer

    Hallo zusammen,

    sicherlich könnt Ihr mir hier weiterhelfen.

    Über mehrere Tabellen hinweg baue ich mir Views zusammen.
    In diesen Views hätte ich gerne so etwas wie eine ID je Zeile.

    Ist das irgendwie machbar?

    Ich habe zwar gegooglet, aber leider nichts gefunden.

    Vielen Dank
    Wolf-Tilmann
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Google hätte row_number() sagen können. Scheinbar mag Google Dich nicht...
     
  3. Wolf-Tilmann

    Wolf-Tilmann Aktiver Benutzer

    In einer Tabelle ja, in einem View nein.

    row_number() als solche gibt es in SQLite nicht.
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Von SQLLite war in der Frage keine Rede.

    Kannst Du denn nicht bei der Definition des VIEWS mit row_number() arbeiten?
     
  5. Wolf-Tilmann

    Wolf-Tilmann Aktiver Benutzer

    uuups

    Ich habe jetzt das Problem über SQL mit der Keule gelöst.
    den View lasse ich wie er ist - also OHNE laufende Nummer.
    Dann habe ich eine Tabelle angelegt mit einer Zelle
    lftNr INTEGER PRIMARY KEY
    Über einen Trigger lasse ich dann, wenn in der Quelltabelle etwas geändert wird
    1. DELETE FROM Tabelle
    2. INSERT INTO Tabelle (values) SELECT NULL, ... FROM View

    Das Funktioniert ist aber absolut nicht elegeant.

    Schönen Abend
    Wolf-Tilmann
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Da ich aus dem anderen Thread noch die Tabelle hatte:

    Code:
    test=*# create view view_eckole as select t, row_number() over () from eckole ;
    CREATE VIEW
    Time: 55,313 ms
    test=*# select * from view_eckole;
      t   | row_number
    ------+------------
     foo  |          1
     bar  |          2
     batz |          3
     ;    |          4
    (4 rows)
    
    Time: 0,297 ms
    test=*# select * from view_eckole where t = 'bar';
      t  | row_number
    -----+------------
     bar |          2
    (1 row)
    
    Time: 0,261 ms
    test=*#
    test=*#
    test=*# select t, row_number() over () from view_eckole where t = 'bar';
      t  | row_number
    -----+------------
     bar |          1
    (1 row)
    
    Also, ich sehe nicht, warum Du bei einem Select aus einer VIEW nicht mit row_number() arbeiten kannst, man muß aber neu zählen, falls man nicht den kompletten VIEW liest, sondern da nochmals eine WHERE-Condition hat. Falls SQLLite row_number() kennt, dann sollte das da auch so gehen, spekuliere ich mal.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden