istruzioni SQL CASE su Informix - Puoi realizzare più di un campo nella sezione di fine di un blocco caso?

StackOverflow https://stackoverflow.com/questions/3971550

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;

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top