2 votes

Valeur de la clause SQL In

J'ai le SQL suivant

Select * 
from PS_VENDOR 
WHERE VENDOR IN ('111','222','333','444') 

dans lequel 444 VENDOR n'existe pas. Mais quand j'exécute le SQL, je devrais obtenir les 4 lignes avec tous les vendeurs de la CLAUSE IN et pour 444 juste remplir BLANK ou 'X'.

J'ai essayé ce qui suit et cela ne fonctionne pas.

Select * 
from PS_VENDOR 
WHERE NVL(VENDOR IN ('111','222','333','444'), 'X');

6voto

JohnHC Points 8708

Utiliser un CTE pour contenir vos valeurs, jointure gauche

with V1 as
(
select '111' as VV from dual
union all
select '222' as VV from dual
union all
select '333' as VV from dual
union all
select '444' as VV from dual
)

select VV, PS_VENDOR.*

from V1
left join PS_VENDOR 
  on VENDOR = VV

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X