0

COUNT如果不使用内置函数,如何根据条件计算表中的字段?有没有办法做到这一点?

要求如下:

创建一个名为 findtotalcarmodels 的 PL/SQL 函数以返回属于特定模型的汽车总数。该函数应该有一个 IN 参数作为 model_name。然后,您应该使用显式游标来计算属于该车型的汽车数量并返回最终数量。您不得使用任何隐式游标、表连接、子查询、集合运算符、组函数或 SQL 函数(例如 COUNT)来创建此函数。

4

2 回答 2

2
SUM(CASE WHEN <condition on your fields> THEN 1 ELSE 0 END)
于 2013-10-09T00:48:51.053 回答
1

这可能是我写的最愚蠢的答案。业内没有人是这样工作的。

答案如下:

CREATE OR REPLACE FUNCTION findtotalcarmodels
( model_name IN VARCHAR2)
IS
    CURSOR mycur IS
        SELECT model_name_col FROM car_table;
    mycount INTEGER := 0;
    current_model_name VARCHAR2(10);
BEGIN
    OPEN mycur;
    FETCH mycur INTO current_model_name;
    WHILE mycur%FOUND LOOP
        IF current_model_name = model_name THEN
            mycount := mycount + 1;
        END IF;
        FETCH mycur INTO current_model_name;
    END LOOP;
    CLOSE mycur;
    dbms_output.put_line('The count is ' || mycount);
END;
/
于 2013-10-09T07:57:41.733 回答