如何缩短SQL函数

如何缩短SQL函数,sql,oracle,function,Sql,Oracle,Function,是否可以像在C#或Java中使用lambda那样缩短SQL函数 set serveroutput on; CREATE OR REPLACE FUNCTION Two(n IN INT) RETURN FLOAT AS s FLOAT; Begin s:=0; FOR i in 0..n LOOP s:=s+1 / POWER(2,i); END LOOP; return s; END Two; / Begin DBMS_OUTPUT.PUT_LINE(Two(

是否可以像在C#或Java中使用lambda那样缩短SQL函数

set serveroutput on;
CREATE OR REPLACE
FUNCTION Two(n IN INT) RETURN FLOAT AS
s FLOAT;
Begin
  s:=0;
  FOR i in 0..n LOOP
    s:=s+1 / POWER(2,i);
  END LOOP;
  
  return s;
END Two;
/
Begin
  DBMS_OUTPUT.PUT_LINE(Two(2));
END;
/
这就是我的功能看起来的样子,我觉得它的工作时间有点长

我怎么能缩短它

是否可以像在C#或Java中使用lambda那样缩短SQL函数

set serveroutput on;
CREATE OR REPLACE
FUNCTION Two(n IN INT) RETURN FLOAT AS
s FLOAT;
Begin
  s:=0;
  FOR i in 0..n LOOP
    s:=s+1 / POWER(2,i);
  END LOOP;
  
  return s;
END Two;
/
Begin
  DBMS_OUTPUT.PUT_LINE(Two(2));
END;
/
不,PL/SQL中没有lambda语法

我怎么能缩短它

您可以只使用2-2-n:

创建函数二(整数中的n)返回浮点
作为
开始
返回2-功率(2,-n);
结束二,;
/
小提琴

是否可以像在C#或Java中使用lambda那样缩短SQL函数

set serveroutput on;
CREATE OR REPLACE
FUNCTION Two(n IN INT) RETURN FLOAT AS
s FLOAT;
Begin
  s:=0;
  FOR i in 0..n LOOP
    s:=s+1 / POWER(2,i);
  END LOOP;
  
  return s;
END Two;
/
Begin
  DBMS_OUTPUT.PUT_LINE(Two(2));
END;
/
不,PL/SQL中没有lambda语法

我怎么能缩短它

您可以只使用2-2-n:

创建函数二(整数中的n)返回浮点
作为
开始
返回2-功率(2,-n);
结束二,;
/

dbfiddle

您正在使用哪些数据库管理系统?(该代码是特定于产品的。)不,pl中没有lambda这样的东西/sql@jarlh我使用的是OracleDBMS,您使用的是哪种dbms?(该代码是特定于产品的。)不,pl中没有lambda这样的东西/sql@jarlh我在用甲骨文