2015年11月11日水曜日

PLSQL 制御文 ~演算子~

PLSQLで使える演算子の一覧です。
演算子説明
=左辺と右辺が一致するとTrue
!=左辺と右辺が一致しないとTrue
<>左辺と右辺が一致しないとTrue (!= と一緒)
>左辺が右辺よりも大きいとTrue
<左辺が右辺よりも小さいとTrue
>=左辺が右辺以上ならばTrue
<=左辺が右辺以下ならばTrue
IN左辺が右辺のリストに含まれていればTrue
NOT IN左辺が右辺のリストに含まれていなければTrue
BETWEEN x AND y左辺がxからyの範囲であればTrue
NOT BETWEEN x AND y左辺がxからyの範囲でなければTrue
LIKE左辺が右辺に部分一致すればTrue
NOT LIKE左辺が右辺に部分一致しなければTrue
IS NULL左辺がNULLであればTrue
IS NOT NULL左辺がNULLでなければTrue

IN以降の演算子はSQLのWHERE句で使われているものですが、IF文の条件式などでも使用できるんですね。
WHERE句で書いているので馴染みはありますが、条件式を書いているときに、
パッとは思い出せないというか、思いつかないというか、パッとは出てこないです。
慣れですかね・・・

DECLARE
    value NUMBER := 5;
    strValue VARCHAR2(10) := 'ABC';
BEGIN    
    
    --IN演算子
    --出力:リストに含まれる
    IF ( value IN (  1, 3, 5, 7, 9) ) THEN
        SYS.DBMS_OUTPUT.PUT_LINE('リストに含まれる');
    ELSE
         SYS.DBMS_OUTPUT.PUT_LINE('リストに含まれない');
    END IF;
    
    --BETWEEN演算子
    --出力:1~9の範囲である
    IF ( value BETWEEN 1 AND 9 ) THEN
        SYS.DBMS_OUTPUT.PUT_LINE('1~9の範囲である');    
    ELSE
         SYS.DBMS_OUTPUT.PUT_LINE('1~9の範囲でない');
    END IF;
    
    --LIKE演算子
    --出力:BCに後方一致する。
    IF ( strValue LIKE '%BC' ) THEN
        SYS.DBMS_OUTPUT.PUT_LINE('BCに後方一致する。');    
    ELSE
         SYS.DBMS_OUTPUT.PUT_LINE('BCに後方一致しない');
    END IF;
    
    --IS NULL演算子
    --出力:NULLである
    strValue := null;
    IF ( strValue IS NULL) THEN
        SYS.DBMS_OUTPUT.PUT_LINE('NULLである。');    
    ELSE
         SYS.DBMS_OUTPUT.PUT_LINE('NULLでない');
    END IF;
    
END;

0 件のコメント: