gpt4 book ai didi

sql - Oracle CASE 表达式文档问题

转载 作者:行者123 更新时间:2023-12-04 15:59:23 25 4
gpt4 key购买 nike

在 Oracle 11g R2 的 SQL 语言引用中,simple CASE expressions 的文档说:

You cannot specify the literal NULL for every return_expr and the else_expr.



但是,以下 SQL 执行没有问题并返回 null:
select case 'test' 
when 'test' then null
else null
end "Null Test"
from dual;

这是文档的问题还是我遗漏了什么?

最佳答案

当您的 case 表达式(无论是简单的还是搜索 case 表达式)在 PL/SQL 块中使用时,您必须至少有一个非空返回表达式。在 SQL 中,此限制放宽:

Is this a problem with the documentation or am I missing something



这似乎是一个小文档错误。

查询语句:
SQL> select case 1
2 when 1 then null
3 else null
4 end as res
5 from dual
6 ;

结果:
RES
---
null

PL/SQL:
SQL> declare
2 l_res number;
3 begin
4 l_res := case 1
5 when 1 then null
6 else null
7 end;
8 end;
9 /

ORA-06550: line 4, column 11:
PLS-00617: at least one result in the CASE expression must not be NULL
ORA-06550: line 4, column 2:
PL/SQL: Statement ignored

关于sql - Oracle CASE 表达式文档问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19837098/

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