passaggio parametro a una query se "is null"

Discussioni sulle caratteristiche di database
Rispondi
dino
Messaggi: 108
Iscritto il: venerdì 6 gennaio 2012, 15:25

passaggio parametro a una query se "is null"

Messaggio da dino »

domanda alla quale non ho trovato risposta:
Buona giornata!
se in una ricerca su un campo di un db voglio passare anche il criterio "is null" come devo fare? (tenendo presente che vuoto oppure uno spazio bianco sono due cose diverse)
es: ho un campo ruolo che può essere vario
id nome ruolo
1 giovanni attaccante
2 pietro difensore
3 luca portiere
4 sergio ' '
5 dario is null
6 roberto centrocampista

La variabile è quindi impostata: "where ruolo = :Ruolo "
ma non riesco a passare is null.... e quindi trovare dario!!!
povero dario!!

grazie a tutti!
libreoffice 4.2 sia su win che su ubuntu
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8953
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: passaggio parametro a una query se "is null"

Messaggio da charlie »

Ciao, prova questa query:

Codice: Seleziona tutto

SELECT "id", "nome", "ruolo" FROM "Table1" WHERE "ruolo" = :Ruolo OR "ruolo" IS NULL
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
dino
Messaggi: 108
Iscritto il: venerdì 6 gennaio 2012, 15:25

Re: passaggio parametro a una query se "is null"

Messaggio da dino »

Si, così funziona ma siccome mi complico la vita vorrei poter passare 2 parametri ad esempio
se io avessi dei giocatori che hanno avuti più ruoli ad esempio (2 tabelle collegate uno a molti)
e io volessi trovare chi nella cariera ha svolto il ruolo di portiere e di centrocampista dovrei poter passare "AND" e non più "OR"
a quel punto ruolo = :Ruolo AND ruolo IS NULL non andrebbe più bene.
io dovrei fare ruolo = :Ruolo AND ruolo = :Ruolo2 (e qui dovrei riuscire a passare la seconda variabile) ma se io provo a mettere IS NULL me lo vede come testo...
e non trova i campi vuoti mentre se passo: ' ' (2 apici) trova i campi in cui il valore è stato cancellato.
libreoffice 4.2 sia su win che su ubuntu
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8953
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: passaggio parametro a una query se "is null"

Messaggio da charlie »

dino ha scritto:… ma siccome mi complico la vita ...
Beh, non complicarla a tutti :lol:, comincia ad allegare un tuo db.
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
dino
Messaggi: 108
Iscritto il: venerdì 6 gennaio 2012, 15:25

Re: passaggio parametro a una query se "is null"

Messaggio da dino »

qualche giorno di ritardo per allegare il db...
ho buttato giù una cosa simile visto che l'originale è in Mysql... spero non sia più complicato ancora (in mysql infatti "is null" è diverso da "cancellato v. allegato)
Allegati
questo è l'esempio della differenza in mysql tra campi null e cancellati
questo è l'esempio della differenza in mysql tra campi null e cancellati
isNull.PNG (2.28 KiB) Visto 2490 volte
giocatori.odb
questo è il file del db
(5.46 KiB) Scaricato 116 volte
libreoffice 4.2 sia su win che su ubuntu
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8953
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: passaggio parametro a una query se "is null"

Messaggio da charlie »

dino ha scritto:e io volessi trovare chi nella cariera ha svolto il ruolo di portiere e di centrocampista dovrei poter passare "AND" e non più "OR"
Con AND mi pare che non funzioni nemmeno se digiti i nomi al completo.
Funziona se aggiungi un campo "ruolo2".
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Rispondi