istruzioni SQL CASE su Informix - Puoi realizzare più di un campo nella sezione di fine di un blocco caso?
-
09-10-2019 - |
Domanda
Utilizzando IBM Informix Dynamic Server versione 10.00.FC9
Sto cercando di impostare più valori di campo con un blocco CASE
. È possibile? Devo rivalutare le stesse condizioni per ogni set di campo?
Stavo pensando a qualcosa in queste righe:
SELECT CASE WHEN p.id = 9238 THEN ('string',3) END (varchar_field, int_field);
Quando la sezione THEN
definirebbe un 'allineamento' di campi simile alla sintassi di
INSERT INTO table (field1,field2) values (value1,value2)
Inoltre, può essere fatto con un blocco CASE
di un'istruzione UPDATE
?
UPDATE TABLE SET (field1,field2) = CASE WHEN p.id=9238 THEN (value1,value2) END;
Soluzione
Normalmente, mi piacerebbe chiedere per la versione di Informix che si sta utilizzando, ma probabilmente non importa molto questa volta. La semplice risposta è 'no'.
Una risposta più complessa potrebbe discutere con un costruttore di tipo fila, ma che probabilmente non è quello che si vuole in uscita. E, data la precede, quindi l'aggiornamento non è andare a lavorare (e richiederebbe un ulteriore livello di parentesi, se stava andando a).
Altri suggerimenti
No, una dichiarazione CASE
risolve ad un'espressione (vedi IBM Informix Guida a SQL: sintassi espressioni case ) e può essere utilizzato in luoghi in cui è consentita un'espressione. Un'espressione è un singolo valore.
http://en.wikipedia.org/wiki/Expression_%28programming%29
Un espressione in una programmazione il linguaggio è una combinazione di esplicita valori, costanti, variabili, operatori e le funzioni che sono interpretati secondo il particolari regole di precedenza e di associazione di un particolare linguaggio di programmazione, che calcola e poi produce (i rendimenti, in un ambiente stateful) un altro valore.
Trovato un modo semplice per farlo trova qui: come avere listview colore fila ai cambiamenti in base ai dati della riga
soluzione era semplicemente aggiungendo l'istruzione case alla mia dichiarazione di sql. Basta cameriera la mia vita molto più facile.