可以在 select 语句的 where 部分中使用的 ORACLE SQL 函数

Posted

技术标签:

【中文标题】可以在 select 语句的 where 部分中使用的 ORACLE SQL 函数【英文标题】:ORACLE SQL function that can be used in the where part of a select statement 【发布时间】:2009-04-03 09:30:39 【问题描述】:

我想创建一个可以在 select 语句的 where 部分使用的函数。像这样:

select 'x' from table where addNumber(4,3)=7; 

我知道如何在 MS SQL 中执行此操作,但我想执行此 Oracle SQL。我怎样才能做到这一点?

【问题讨论】:

也许您应该尝试确定您的用户定义函数 (udf) 是否是确定性函数。当您的 udf 被声明为确定性时,您可以获得性能,并且您可以在基于函数的索引中使用您的 udf。 【参考方案1】:

你需要写一个 PL/SQL 函数...

CREATE OR REPLACE FUNCTION addNumber(firstParam  IN NUMBER,
                                     secondParam IN NUMBER)
RETURN NUMBER
IS 
BEGIN
   RETURN firstParam + secondParam;
END;
/

...将它运行到您正在使用的 scheam 中(可能使用 SQL*Plus),然后像在上面的 SQL 语句中那样调用它。

【讨论】:

以上是关于可以在 select 语句的 where 部分中使用的 ORACLE SQL 函数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Oracle 中使 Select 语句更快

部分查询功能语句

如何在光标的 select 语句 where 子句中传递逗号分隔值

SQL语句 select from where中可否嵌入if条件语句?

SQL(高级查询)

关于 select的条件语句where 后能否内嵌另一个 select语句??