gpt4 book ai didi

sql - 解码语句 : strange behaviour

转载 作者:行者123 更新时间:2023-12-01 08:04:21 27 4
gpt4 key购买 nike

我对以下声明有一些疑问:

SELECT  1
FROM dual
WHERE DECODE(1,
0,
(SELECT COUNT(*) from tbl),
1) > 0

如果“tbl”为空,则执行此查询会以某种方式返回任何内容。

另一方面,查询的执行:

SELECT  1
FROM dual
WHERE DECODE(1,
0,
(SELECT COUNT(*) from tbl),
1) = 1

返回 1。

此外,这:

SELECT  1
FROM dual
WHERE DECODE(1,
0,
(SELECT COUNT(*) from tbl),
1) = 0

还返回 1。我错过了什么?

编辑 1 sqlplus 列表

SQL> select count(*) from ids;

COUNT(*)
----------
0

SQL> SELECT 1
2 FROM dual
3 WHERE DECODE(1,
4 0,
5 (SELECT COUNT(*) from ids),
6 1) > 0;

no rows selected

SQL> SELECT 1
2 FROM dual
3 WHERE DECODE(1,
4 0,
5 (SELECT COUNT(*) from ids),
6 1) =1;

1
----------
1

SQL> SELECT 1
2 FROM dual
3 WHERE DECODE(1,
4 0,
5 (SELECT COUNT(*) from ids),
6 1) =0;

1
----------
1

最佳答案

通过将其嵌套在选择中,从 where 原因中获取解码。它不会有效率,但它应该工作。你到底想在这里做什么?你能用数字以外的东西举个例子吗:)。

选择 1从双哪里(选择解码(1, 0, (从 ids 中选择 COUNT(*)), 1) 来自对偶)=0;

关于sql - 解码语句 : strange behaviour,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24559452/

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