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

Select-Abfrage zu einer Delete-Befehl umstellen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Tetra1081, 4 Dezember 2014.

  1. Tetra1081

    Tetra1081 Neuer Benutzer

    Hallo zusammen,

    ich möchte folgende Select-Abfrage zu einen Delete-Befehl umstellen:

    SELECT * FROM
    (SELECT *, ROW_NUMBER() OVER(ORDER BY DatumZeit) AS Zeile FROM test) AS t
    WHERE Zeile % 2 = 0

    Die Ausgabe wäre in diesem Fall jeder 2. Datensatz, den ich zu
    löschen wünsche.

    Hoffe auf Eure Hilfe.

    Viele Grüße
    Florian
     
    Zuletzt bearbeitet: 4 Dezember 2014
  2. ukulele

    ukulele Datenbank-Guru

    Das müsste in etwa so gehen:

    Code:
    DELETE FROM    test WHERE pk IN (
    
    SELECT pk FROM
    (SELECT pk, ROW_NUMBER() OVER(ORDER BY DatumZeit) AS Zeile FROM test) AS t
    WHERE Zeile % 2 = 0
    
    )
     
  3. Tetra1081

    Tetra1081 Neuer Benutzer

    Ich erhalte da folgenden Fehler:

    Msg 207, Level 16, State 1, Line 1
    Invalid column name 'pk'.
    Msg 207, Level 16, State 1, Line 4
    Invalid column name 'pk'.
     
  4. ukulele

    ukulele Datenbank-Guru

    pk steht hier für Primary Key und soll die Spalte sein, die deinen Primary Key beinhaltet. Das musst du natürlich austauschen.
     
  5. Tetra1081

    Tetra1081 Neuer Benutzer

    Danke, jetzt funktioniert der Befehl :)
     
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