postgresql data systemowa

0

Dla każdego projektu wyświetl dwie kolumny: nazwę oraz jedno ze słów "ukończony"/"trwający" w zależności czy termin ukończenia wypada przed czy po dacie systemowej

select nazwa,'ukonczony' as kol2 from projekty
where termin_oddania<current_timestamp
union
select nazwa,'trwajacy' as kol2 from projekty
where termin_oddania>current_timestamp

Prosiłbym o pomoc gdyż nie mam na to pomysłu...

1
SELECT
  nazwa,
  (CASE WHEN ... END) AS stan

FROM projekty
1

Można i tak:

select 
	dzien, 
	(array['ukonczone', 'trwajace'])[(dzien>clock_timestamp())::int+1] status
from 
	(values('2018-01-01'::date),('2019-01-01'::date)) x(dzien)
0

muszę uzyc: union lub except lub intersect, takze case sie tu nie sprawdzi w moim przyapdku oczywiscie

0

Ale jak UNION? To zadanie na studia?

0

Tak dokladnie, mam zrobić kilka zadań na studia, ale właśnie ten przykład sprawia mi problem, a mamy narzucone używanie tych właśnie operatorów

0

Ale tu nie ma jak użyć ani UNION, ani EXCEPT, ani INTERSECT... Te operatory są do zbiorów, a tu nie widzę opcji by użyć oddzielnych zbiorów...

0

Skoro takie zadanie dostaliśmy i mamy narzucone operatory których mamy uzyc to raczej się da..

0

Skoro tak, to jedyne rozwiązanie, to takie, jak podałeś w pierwszym poście. Zamieniłbym tylko UNION na UNION ALL

1

Ale właściwie z czym masz problem? Rozwiązanie które zaproponowałeś w pierwszym poście jest zupełnie ok

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