sql - Oracle SQL 查询中的常量

标签 sql database oracle constants

我是 Oracle 的新手(虽然熟悉 SQL)并且必须编写一个相当复杂的查询,其中多次使用从当前日期派生的值。与其每次都计算值,不如为此目的声明一个常量。

但是,当我随后尝试在后续的 SELECT 语句(我希望返回基于“DateIndex”的值)中使用我的 DateIndex 常量时,解析器告诉我它正在执行 SELECT INTO。

我所拥有的(简化为最低形式)是...

 DECLARE DateIndex CONSTANT NUMBER(10,0) := 24;

 BEGIN
      SELECT DateIndex
      FROM DUAL;
END;

是否只能在选择到表中而不返回结果时使用常量?看起来很奇怪。

请注意,我没有对数据库的写入权限。

非常感谢您的帮助。

最佳答案

我更喜欢 WITH 和 DUAL 表的以下用法:

WITH 
const AS ( SELECT 
    3.14 AS pi,
    1    AS one 
    FROM DUAL
)
SELECT * FROM sometable t,  const
 WHERE t.value = const.pi;

这使您可以在语句中使用常量之前定义常量,并且实际语句不会因子选择而困惑。

关于sql - Oracle SQL 查询中的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1293008/

相关文章:

sql - 如何运行有条件地使用连接的连接查询

linux - 微策略触发批处理

java - JPA - merge()重复记录问题

sql - PostgreSQL select when parameters for search in another table string

mysql - Groovy SQL everyRow 格式输出

mysql - MySQL 中的二进制数据

mysql - CodeIgniter数据库错误覆盖

sql - 在oracle中查找星期几

java - 由 : java. sql.SQLException : ORA-01795: maximum number of expressions in a list is 1000? 引起

mysql - 在golang sql语句中转义滴答声