我正在尝试执行select语句,具体取决于大小写
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;
因此,我期望如果日期是'Mon‘(星期一),则执行Select from (星期一-2天),并使所有列/行不只是1个计数,否则执行当天的select。
如果日期是星期一,则结果应为
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 Analysts或IBM Data Studio读取数据库。
发布于 2019-12-12 01:48:08
如果没有模式和数据示例,则很难确切知道您想要什么,但如果我们假设您希望根据日期从表作业中获取所有行,则可以执行以下查询
SELECT jobs.*
FROM jobs
WHERE jobs.datein >= CASE
WHEN WEEKDAY(TODAY) = 1 THEN TODAY-2
ELSE TODAY
END
我没有您提到的工具,但是这个查询可以从dbaccess在Informix 12.10和14.10上正常运行。
https://stackoverflow.com/questions/59278077
复制相似问题