假设我有表XYZ,其中包含一个存储值SUNDAY,SATURDAY的列Weekend_Days,并且我有另一个表ABC,其中包含日期ACT_DATE,该日期可以是任意日期。现在我必须检查这一天的这一天是不是周末。在存储逗号分隔值的列值中搜索值
我试着使用:
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
但它不能正常工作,它只是所有日期返回0。
尝试将Weekend_Days的值存储为('SUNDAY','SATURDAY'),但没有奏效。
示例数据:
表XYZ:
WEEKEND_DAYS
---------------
SUNDAY,SATURDAY
表ABC:
ACT_DATE
---------
02-Feb-16
06-Feb-16
当前结果:
ACT_DATE WEEKEND_FLAG
--------- ------------
02-Feb-16 0
06-Feb-16 0
预期结果:
ACT_DATE WEEKEND_FLAG
--------- ------------
02-Feb-16 0
06-Feb-16 1
请正确标记您的DBMS,我不认为您同时使用'mysql'和'oracle'。另外,你可以发布一些样本数据吗? – HoneyBadger
发布创建和插入语句。并显示您所需的输出。 –