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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage