gpt4 book ai didi

sql - Oracle Case 语句不起作用

转载 作者:行者123 更新时间:2023-12-01 23:45:35 25 4
gpt4 key购买 nike

我正在尝试使用以下 case 语句从我的表中提取信息,如果我忽略 case 语句并手动输入它工作的日期,但 case 语句不它似乎直接跳转到 else部分,有什么建议吗?

SELECT * FROM mytable WHERE day = CASE WHEN to_char(SYSDATE, 'DAY') = 'SATURDAY' THEN 'Sat'
WHEN to_char(SYSDATE, 'DAY') = 'SUNDAY' THEN 'Sun'
ELSE 'weekday' END;

最佳答案

出于某种原因,to_char 函数在末尾用空格填充字符串,但它不匹配。我试过这个:

select '#' || to_char(SYSDATE+2, 'DAY') || '#' from dual 

它返回:#SUNDAY #

将您的查询更改为:

SELECT * FROM mytable WHERE day = CASE WHEN trim(to_char(SYSDATE, 'DAY')) = 'SATURDAY' THEN 'Sat'
WHEN trim(to_char(SYSDATE, 'DAY')) = 'SUNDAY' THEN 'Sun'
ELSE 'weekday' END;

如果您查看 documentation它声明对于“DAY”-日期名称,用空格填充以显示该元素使用的日期语言中最宽的日期名称的宽度。

不是我所期望的。

关于sql - Oracle Case 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29440920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com