Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    [oracle] cancellare più record con più chiavi

    Ho una tabella con due chiavi, k1 e k2, con questi record selezionati, per esempio
    k1 k2
    ------
    1 1
    1 2
    2 1
    2 3


    ho provato a cancellarli con
    ... where k1 in (1, 2) and k2 in (1,2)

    oppure con

    ... where k1=1 and k2=1 or k1=2 and k2=2 or k1=2 and k2=1 or k1=2 and k2=2

    oppure con

    ... where (k1, k2) in ((1,1),(1,2),(2,1),(2,2))


    e volevo chiedere quale è la sintassi migliore
    Pietro

  2. #2
    Li hai provati? Funzionano tutti?

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da ZioLuffio
    Li hai provati? Funzionano tutti?
    funzionano tutti ma, l'ultimo non lo conoscevo ed ho visto che c'è nella documentazione oracle; il secondo mi pare troppo "verboso" ed il primo, anche se mi pare funzioni, non sono sicuro della logica.

    Pietro

  4. #4
    Originariamente inviato da pietro09
    [...]ed il primo, anche se mi pare funzioni, non sono sicuro della logica.

    il primo equivale a dire che k1 deve essere 1 o 2, lo stesso k2. Senza specificare k2 sceglierebbe le righe (1,1) e (1,2)

  5. #5
    Le tre soluzioni funzionano con lo stesso risultato, ma il primo esempio è quello più performante soprattutto perchè non utilizza l'operatore OR. Per quanto riguarda il caso 3 è da escludere perchè macchinoso

    Ciao
    Mik

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Holidaysoft.it
    Le tre soluzioni funzionano con lo stesso risultato, ma il primo esempio è quello più performante soprattutto perchè non utilizza l'operatore OR. Per quanto riguarda il caso 3 è da escludere perchè macchinoso

    Ciao
    Mik
    Ti ringrazio della risposta
    Perdonami se insisto: sei sicuro che il primo sia il più efficace? lo chiedo, primo perchè sono davvero ignorante in materia, secondo perchè me lo sono "inventato" ma non ho visto qualcosa di simile in rete

    ciao
    Pietro

  7. #7
    Bravo, ti sei inventato qualcosa di buono... Per l'operatore IN puoi leggere qualcosa sulla guida oracle di Html: http://www.html.it/pag/16916/ricerch...valori-nulli/. L'operatore OR come ti dicevo è poco performante. Ovviamente, dipende tutto da cosa vuoi filtrare. Nel tuo caso la condizione "where k1 in (1, 2) and k2 in (1,2)" selezionava 3 record dei 4 escludendo/non cancellando il record "2 3"

    Ciao e fammi sapere se è tutto claro

    Mik

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Perfetto ti ringrazio.

    ciao
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.