create table t(a int, b int); insert into t values (1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2),(3,3); select * from t; a | b ---------- 1 | 1 1 | 2 1 | 3 2 | 1 2 | 2 2 | 3 3 | 1 3 | 2 3 | 3 select max(case when a = 1 then b else 0 end) as q, max(case when b = 1 then a else 0 end) as c, (max(case when a = 1 then b else 0 end)+max(case when b = 1 then a else 0 end)) as x from t
È possibile fare qualcosa del genere?come ottenere il valore x senza duplicazione del codice
select max(case when a = 1 then b else 0 end) as q, max(case when b = 1 then a else 0 end) as c, (q + c) as x from t
1) La risposta può variare in base al fornitore di SQL. MySQL? Oracolo? Server SQL? 2) Scommetto che una tabella temporanea contenente le prime due colonne, quindi una selezione da essa per selezionare le due colonne più la nuova colonna, potrebbe farlo – Patashu