Sql 是否存在基于查询更新并返回其行的系统表?
DUAL是一个系统表,用于获取系统函数的常量和结果 但是,它只有一个名为“dummy”的列,并且只有一行中有X值,因此这不起作用:Sql 是否存在基于查询更新并返回其行的系统表?,sql,oracle,Sql,Oracle,DUAL是一个系统表,用于获取系统函数的常量和结果 但是,它只有一个名为“dummy”的列,并且只有一行中有X值,因此这不起作用: 我的问题是,是否有一个系统表可以实现这个技巧?一个(单列)表返回一行,而不管如何查询它的一列,其值在where子句中。您要执行的操作违反了SQL的工作方式。但是,如果您总是希望从“表”中只返回一行,则可以使用聚合,而不使用分组依据: select max(dummy) from dual where dummy = '5' 返回值为NULL如果您解释了您试图解
我的问题是,是否有一个系统表可以实现这个技巧?一个(单列)表返回一行,而不管如何查询它的一列,其值在where子句中。您要执行的操作违反了SQL的工作方式。但是,如果您总是希望从“表”中只返回一行,则可以使用聚合,而不使用
分组依据
:
select max(dummy)
from dual
where dummy = '5'
返回值为
NULL
如果您解释了您试图解决的问题,那么可能更容易提出建议
正如你所问:
一个(单列)表,它返回一行,而不管如何查询它的一列,其值在where子句中
- dual是一个(单列)表
- 此查询返回一行
- 值(
)位于其'5'
子句中where
- 我认为“不管它的一列是如何查询的”也可以满足
无法将值从WHERE子句传输到SELECT列表。您的最终目标是什么?
SQL> select dummy from dual where dummy = '5' or 1 = 1;
D
-
X
SQL>
SELECT '5' AS dummy FROM dual
DUMMY|
-----|
5 |