0

COUNT組み込み関数を使用せずに、条件に基づいてテーブル内のフィールドをカウントするにはどうすればよいでしょうか? これを行う方法はありますか?

要件は次のとおりです。

findtotalcarmodels という PL/SQL 関数を作成して、特定のモデルに属する車の総数を返します。関数には、model_name として 1 つの IN パラメーターが必要です。次に、明示カーソルを使用して、その自動車モデルに属する自動車の数をカウントし、最終的な数を返す必要があります。この関数を作成するために、暗黙カーソル、テーブル結合、サブクエリ、セット演算子、グループ関数、または 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 に答える