具有功能的CTAS

埃文·巴雷(Evan Barre)

我有一个带有以下列的表:age(VARCHAR2),bothsexs(NUMBER),male(NUMBER),female(NUMBER)。我正在尝试使用存储函数编写CTAS语句,该函数将返回百分比(num1 / num2)。对于我的一生,我无法弄清楚。本质上,我希望CTAS给我第二张表,其中包含age(VARCHAR2)和percent(number),并复制表1 age中的每条记录,并对百分比进行适当的计算。

到目前为止,这就是我所拥有的。

这是我的功能。

CREATE OR REPLACE FUNCTION CALCULATE_PERCENT(NUM1 IN NUMBER,NUM2 IN NUMBER)
  RETURN NUMBER
    IS TOTAL NUMBER;
    BEGIN
      SELECT (NUM1/NUM2) INTO TOTAL FROM DUAL;
      RETURN TOTAL;
    END;

到目前为止,这是我的CTAS。

CREATE TABLE ARMalePercentage (AGE PRIMARY KEY) 
AS SELECT A.AGE, calculate_percent(num1=>A.MALE,num2=>A.BOTHSEXES) 
 "Percent Male Population" from arkansas2010census a;

我是SQL的新手,不知道我在做什么错,因此可以提供任何帮助。

解:

CREATE TABLE ARMalePercentage (AGE PRIMARY KEY, "Percent Male Population") AS SELECT A.AGE, (select calculate_percent(a.MALE,a.BOTH_SEXES) from dual) "Percent Male Population" FROM arkansas2010census a;

马克·斯图尔特

您正在创建一个表ARMalePercentage该表具有一个名为的列,AGE具有主键约束,并尝试使用返回A.AGE以及函数结果的查询来填充该

我想你要

CREATE TABLE ARMalePercentage (AGE PRIMARY KEY, PCT_MALE) 
   AS SELECT A.AGE, 
      calculate_percent(num1=>A.MALE,num2=>A.BOTHSEXES) "Percent Male Population"
      from arkansas2010census a;

您可以尝试运行SELECT语句一部分,以查看是否返回了两列。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章