sql >> データベース >  >> RDS >> Oracle

テーブル内の値yes/noをチェックし、sqlを実行するSQLストアドプロシージャ

    if (cursor)はありません 構築または実際にexists PL/SQL構文の演算子。次のようなことをする必要があります:

    declare
        somevar number;
    begin
        select count(*) into somevar
        from   table1
        where  value_desc = 'Indicator'
        and    value1 = 'Y'
        and    rownum = 1;
    
        if somevar > 0 then
            execute immediate sql_select_yes
        else 
            execute immediate sql_select_no
        end;
    end;
    

    およびrownum=1 存在テストのためにすべての行をカウントする必要がないため、条件は行数が多い場合に備えてです。 (100万行をカウントする必要がある場合は結果に影響しません。1行が存在するかどうかだけを気にするのは時間の無駄です。)存在チェックにも同様に次のようなものを使用できます。

    select count(*) into somevar from dual
    where  exists
           ( select 1
             from   table1
             where  value_desc = 'Indicator'
             and    value1 = 'Y'
             and    rownum = 1 );
    


    1. ローカルMySQLデータベースをHerokuにデプロイする方法

    2. max(time)mysqlでグループ化

    3. MySQLで来月の最初と最後の日付を取得する

    4. mySQLの特定の文字の左右から文字のみを取得する