
#sql #oracle #naukaprogramowania #programowanie
jak zrobić takiego CASE we WHERE żeby
jeśli idpracownika jest w zbiorze (:A, :B, :C, :D, :E) to dodaj do tego zbioru jeszcze jednego pracownika i zwróć wszystkich?
może mój niedziałający kod pokaże, o co mi chodzi
WHERE EMPID IN (
CASE WHEN 'X' IN (:A, :B, :C, :D, :E) THEN (:A, :B, :C, :D, :E, 'Y') ELSE (:A, :B, :C, :D, :E)
)
jak zrobić takiego CASE we WHERE żeby
jeśli idpracownika jest w zbiorze (:A, :B, :C, :D, :E) to dodaj do tego zbioru jeszcze jednego pracownika i zwróć wszystkich?
może mój niedziałający kod pokaże, o co mi chodzi
WHERE EMPID IN (
CASE WHEN 'X' IN (:A, :B, :C, :D, :E) THEN (:A, :B, :C, :D, :E, 'Y') ELSE (:A, :B, :C, :D, :E)
)
- Najlepsze
- Wszystkie komentarze






where ('X' IN (:A, :B, :C, :D, :E) and emp_id in (:A, :B, :C, :D, :E, 'Y')) or ('X' NOT IN (:A, :B, :C, :D, :E) and emp_id in (:A, :B, :C, :D, :E))?
a to nie chodzi o coś w stylu:
with pracownicy as (select 'a' pracownik from dual union all
select
I tak przy okazji zamiast robic oddzielne selecty from dual z unionami np. w oraclu mozna zrobic cos takiego:
select * FROM sys.odcivarchar2list('A','B','C','D', 'E');
są wbudowane funkcje które ci z listy zrobią wygodnego selecta
where? :) u mnie działa w ten sposób (wszystkie stringi traktuj jako placeholdery:)select column_value as pracownikfrom sys.odcivarchar2list('wartość_z_gui_A','wartość_z_gui_B','wartość_z_gui_C','wartość_z_gui_D', 'wartość_z_gui_E')
union
select
wartość_z_innej_kontrolki_w_guinie wpływa to, czy występowała wśród pięciuwartości_z_gui. Na pewno jej tam nie będzie. Ale jedna specyficznawartość_z_guimusi spowodować, żewartość_z_innej_kontrolkizostanie uwzględniona. Mam