Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 是否存在基于查询更新并返回其行的系统表?_Sql_Oracle - Fatal编程技术网

Sql 是否存在基于查询更新并返回其行的系统表?

Sql 是否存在基于查询更新并返回其行的系统表?,sql,oracle,Sql,Oracle,DUAL是一个系统表,用于获取系统函数的常量和结果 但是,它只有一个名为“dummy”的列,并且只有一行中有X值,因此这不起作用: 我的问题是,是否有一个系统表可以实现这个技巧?一个(单列)表返回一行,而不管如何查询它的一列,其值在where子句中。您要执行的操作违反了SQL的工作方式。但是,如果您总是希望从“表”中只返回一行,则可以使用聚合,而不使用分组依据: select max(dummy) from dual where dummy = '5' 返回值为NULL如果您解释了您试图解

DUAL是一个系统表,用于获取系统函数的常量和结果

但是,它只有一个名为“dummy”的列,并且只有一行中有X值,因此这不起作用:


我的问题是,是否有一个系统表可以实现这个技巧?一个(单列)表返回一行,而不管如何查询它的一列,其值在where子句中。

您要执行的操作违反了SQL的工作方式。但是,如果您总是希望从“表”中只返回一行,则可以使用聚合,而不使用
分组依据

select max(dummy)
from dual
where dummy = '5'

返回值为
NULL

如果您解释了您试图解决的问题,那么可能更容易提出建议

正如你所问:

一个(单列)表,它返回一行,而不管如何查询它的一列,其值在where子句中

  • dual是一个(单列)表
  • 此查询返回一行
  • 值(
    '5'
    )位于其
    where
    子句中
  • 我认为“不管它的一列是如何查询的”也可以满足
为什么是“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    |