Suchen Sie einen Wert in der Spalte, in der kommagetrennte Werte gespeichert sind.
Angenommen, ich habe die Tabelle XYZ mit der Spalte Weekend_Days, in der der Wert SUNDAY, SATURDAY gespeichert ist, und ich habe eine andere Tabelle ABC mit dem Datum ACT_DATE, das ein beliebiges Datum sein kann. Jetzt muss ich prüfen, ob der Tag an diesem Datum ein Wochenende ist oder nicht.
Ich habe versucht mit:
select ACT_DATE
, case
when UPPER(TO_CHAR(ACT_DATE,'DAY')) IN (SELECT Weekend_Days from XYZ)
then 1
else 0
end as Weekend_Flag
from ABC
Aber es funktioniert nicht, es wird nur 0 für alle Daten zurückgegeben.
Es wurde versucht, den Wert von Weekend_Days als ('SONNTAG', 'SAMSTAG') zu speichern, aber es hat nicht funktioniert.
Beispieldaten
Tabelle XYZ:
WEEKEND_DAYS
---------------
SUNDAY,SATURDAY
Tabelle ABC:
ACT_DATE
---------
02-Feb-16
06-Feb-16
Aktuelles Ergebnis:
ACT_DATE WEEKEND_FLAG
--------- ------------
02-Feb-16 0
06-Feb-16 0
Erwartetes Ergebnis
ACT_DATE WEEKEND_FLAG
--------- ------------
02-Feb-16 0
06-Feb-16 1