根据 CASE 语句执行 SELECT 操作



>我正在尝试根据 CASE 执行选择语句

SELECT CASE WHEN TO_CHAR(today, "%a") = 'Mon' 
THEN (SELECT COUNT(*) FROM  jobs WHERE datein > today-2) 
ELSE (SELECT COUNT(*) FROM  jobs WHERE datein = today) 
END CASE;

因此,我希望如果这一天是"星期一"(星期一(,然后执行选择(星期一 - 2 天(并带来所有列/行而不仅仅是 1 个计数,否则执行当天的选择。

如果当天是星期一,结果应该是

id | jobs | date
1  |12,500| 12-7-2019
2  |10,800| 12-8-2019

如果当天与星期一不同,则应相同,但对于今天的数据

id | jobs | date
3  |35,000| 12-9-2019

如果这是不可能的,还有其他方法吗?(考虑到我的访问权限有限(

数据库服务器:INFORMIX 12.1 我只能使用 Toad for Data Analyst 或 IBM Data Studio 读取数据库。

如果没有架构和数据示例,很难确切知道您想要什么,但是如果我们假设您希望根据日期从表作业中获取所有行,则可以执行此查询

SELECT jobs.*
FROM jobs
WHERE jobs.datein >=  CASE
WHEN WEEKDAY(TODAY) = 1 THEN TODAY-2
ELSE TODAY
END

我没有您提到的工具,但是此查询在 dbaccess 的 Informix 12.10 和 14.10 上运行正常。

相关内容

  • 没有找到相关文章

最新更新