TSQL: come restituire 2 valori con un'istruzione case?
-
13-09-2019 - |
Domanda
C'è un modo per usarne uno CASE
istruzione e restituire 2 valori diversi?
La query seguente ha 2 CASE
dichiarazioni con le stesse condizioni.
select case when DA.value = 1
then da.Good else da.Bad end as Foo,
case when DA.value = 1
then ot.Good else ot.Bad end as Bar,
from someTable DA (nolock)
join otherTable OT (nolock) on OT...
where ...
C'è comunque, per specificarlo CASE
dichiarazione una volta?
in modo che non sia necessario mantenerli entrambi CASE
istruzioni in sincronia ogni volta che la condizione cambia?
Soluzione
Non c'è modo di fare quello che stai descrivendo.Non solo la tua istruzione case è diversa per entrambi i casi, ma stai restituendo valori da tabelle totalmente diverse in ciascun caso.
Altri suggerimenti
Non sono sicuro che questo sia ciò di cui hai bisogno, ma puoi fare combinazioni come:
select
case
when da.value = 1 and ot.attributeValue = 1 then ot.good
when da.value = 2 and ot.attributeValue = 3 then ot.good
...
else ot.bad
end Result
from
someTable DA
JOIN otherTable OT
on (ot.id = da.id)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow