CASE w oracle SQL

0

cześć,
Mam pewnie prostą sprawę do realizacji ale nie wiem jak dokładnie to ograć SQLem. Będę operował na fikcyjnych tabelach zeby dobrze opisać problem.
Powiedzmy ze mam tabele KONTRAKTY z kluczem głownym ID. do tej tabeli muszę dołożyć jedną kolumne i uzupełnić ją zerami lub jedynkami w zależności od tego czy pewne zapytanie (bazujące tez na tabeli KONTRAKTY i na kilku innych) zwróci jakąkolwiek wartość czy nie. A więc jezeli moje zapytanie zwroci wartość to wtedy w nowej kolumnie tabeli KONTRAKTY dla podanego ID zwracam 1 a jeżeli takiego ID nie będzie w wyniku zapytania to do takiego ID w kolumnie będzie wartość 0 (zero). Zapytanie bazuje również na tej tabeli KONTRAKTY. miałoby to wyglądać tak że tabela KONTRAKTY jest tabelą do ktorej doklejam te zera lub jedynki w zależności czy zapytanie (np select * from KONTRAKTY join KLIENCI on ID=ID join FAKTURY on ID_F = ID_F where coś tam coś tam....) zwróci wartość czy nie

czy tu jakis CASE WHEN ma byc zastosowany czy jak?
Z góry dzieki za info

0

Nie potrzebujesz żadnego CASE. Dokładając kolumnę dajesz wartość domyślną 0, a następnie robisz UPDATE na ych rekordów, które są w drugiej tabeli.

0

Dołóż po prostu kolumnę, wypełnij ją zerami a następnie zupdatuj na 1 te wiersze gdzie zapytanie, ktore Cię interesuje coś zwraca ( w tym wypadku użyj Twojego zapytania jako podzapytanie i powiąż z tabelą kontrakty - w przykładzie wiązanie to warunek K.ID=KON.ID)
Przykładowo:
UPDATE KONTRAKTY k SET k.NEW_COLUMN = 1 WHERE EXISTS
( select * from KONTRAKTY KON join KLIENCI on kon.ID=ID join FAKTURY on ID_F = ID_F where K.ID=KON.ID AND reszta warunków podzapytania)

1 użytkowników online, w tym zalogowanych: 0, gości: 1