小编use*_*656的帖子

SQL:带有NULL值的AVG

据我所知,AVG()函数忽略NULL值.

所以AVG(4,4,4,4,4,NULL) - > 4

就我而言,我不希望这种情况发生.

我需要这样的解决方案:AVG(4,4,4,4,4,NULL) - > 3,33

不直接在表本身中替换NULL值.有没有办法做到这一点?

sql oracle null average

6
推荐指数
1
解决办法
2万
查看次数

PL/SQL中的嵌套游标

我正在使用Oracle PL/SQL.我试图定义嵌套游标,这意味着第一个Cursor的输出应该是第二个Cursor的输入.更具体一点:第一个应该存储具有特定前缀的表.第二个应该存储来自第一个表中所有表的属性的所有值.

这是我的代码片段.我希望它能让我的问题更加清晰:

DECLARE
    var_table_name  VARCHAR2(30);
    var_dimension_key  VARCHAR2(30);

CURSOR cur_all_dim IS  
    SELECT 
        table_name
        FROM  dba_tables
        WHERE dba_tables.tablespace_name = 'USERS'
        AND dba_tables.owner = 'DWH_CORE'
        AND UPPER (dba_tables.table_name) LIKE ('%DIM%%')
        AND UPPER (dba_tables.table_name) NOT LIKE ('%TEMP%')
        AND UPPER (dba_tables.table_name) NOT LIKE ('%DEBUG%')
        AND UPPER (dba_tables.table_name) NOT LIKE ('%LOG%');

CURSOR cur_dimension_key IS
    SELECT dimension_key FROM var_table_name;


BEGIN
OPEN cur_all_dim;

LOOP
EXIT WHEN cur_all_dim%NOTFOUND;

    FETCH cur_all_dim INTO var_table_name;

    OPEN cur_dimensions_key;
    LOOP
    EXIT WHEN cur_dimensions_key%NOTFOUND;
    FETCH cur_dimensions_key INTO var_dimension_key;
    dbms_output.put_line (var_table_name);
    dbms_output.put_line (var_dimension_key);


    END LOOP; …
Run Code Online (Sandbox Code Playgroud)

oracle plsql nested cursor

4
推荐指数
1
解决办法
3万
查看次数

标签 统计

oracle ×2

average ×1

cursor ×1

nested ×1

null ×1

plsql ×1

sql ×1