DB/Oracle/PLSQL/ʬ´ô

Top/DB/Oracle/PLSQL/ʬ´ô

Ìܼ¡

½èÍý¤ò¾ò·ï¤Ë¤è¤Ã¤Æʬ´ô¤µ¤»¤ë¡£¤¤¤ï¤æ¤ë IF ʸ¤È CASE ʸ¡£


IF ʸ

IF ʸ¤Ë¤è¤ëʬ´ô¡£¤Û¤«¤Î¸À¸ì¤È°ì½ï¤Ê¤Î¤ÇÀâÌÀ¤¹¤ë¤Û¤É¤Î¤â¤Î¤Ç¤â¤Ê¤¤¤Ê¤¢¤È¤¤¤¦°õ¾Ý¡£

  • IF ʸ¤Îµ­½Ò
    declare
        hoge number := 10;
    begin
        -- IF ʸ³«»Ï
        if hoge > 100 then
            ...
        -- Ê£¿ô¾ò·ï¤Î¾ì¹ç¤Ï ELSIF ¤Çʤ٤ë
        elsif hoge > 50 then
            ...
        -- ¤¹¤Ù¤Æ¹çÃפ·¤Ê¤«¤Ã¤¿¤é¤³¤ì¤ò¼Â¹Ô
        else
            ...
        -- IF ʸ½ªÎ»
        end if;
    end;
    

CASE ʸ

CASE ʸ¤Ë¤è¤ëʬ´ô¡£¤Û¤«¤Î¸À¸ì¤È°ì½ï¤Ê¤Î¤ÇÀâÌÀ¤¹¤ë¤Û¤É¤Î¤â¤Î¤Ç¤â¤Ê¤¤¤Ê¤¢¤È¤¤¤¦°õ¾Ý¡£

CASE ¼°¤È CASE ʸ¤¬¤¢¤ë¤é¤·¤¤¡£ÃͤÎÂåÆþ¤Ë»È¤¦¤Î¤¬ CASE ¼°¡¢½èÍý¤Îʬ´ô¤Ë»È¤¦¤Î¤¬ CASE ʸ¡£

CASE ¼°

ÃͤòÂåÆþ¤¹¤ë¤È¤­¤Ë»È¤¦¡£

  • CASE ¼°
    declare
        hoge number := 1;
        fuga varchar2(10);
    begin
        -- hoge ¤ÎÃͤ˱þ¤¸¤Æ fuga ¤ËÂåÆþ¤¹¤ëÃͤòÊѤ¨¤ë
        fuga := case hoge
            when 1 then 'foo'
            when 2 then 'bar'
            else 'baz'
        end; 
    
        -- Ê̤νñ¤­Êý¡£when ¤Ë¤Ï¥Ö¡¼¥ëÃͤòÊÖ¤¹È½Äê¼°¤ò¼«Í³¤Ë½ñ¤±¤ë
        fuga := case
            when hoge = 1 then 'foo'
            when hoge = 2 then 'bar'
            else 'baz'
        end; 
    end;
    

CASE ʸ

IF ʸ¤ÈƱ¤¸¤³¤È¤ò CASE ʸ¤Ç¤â¤«¤±¤ë¡£¤¿¤Ö¤ó IF ʸ¤Î¤¬°ìÈÌŪ¡£

  • CASE ʸ
    declare
        hoge number := 1;
    begin
        case hoge
            when 1 then
                ...
            when 2 then
                ...
            else
                ...
        end case;
    end;
    

NULL Ãͤΰ·¤¤

NULL ÃͤȤÎñ½ã¤ÊÈæ³Ó¡ÊÂç¤Ê¤ê¡¢¾®¤Ê¤ê¡¢¥¤¥³¡¼¥ë¤Ê¤É¡Ë¤Ï¾ï¤Ë·ë²Ì¤Ï NULL ¤Ë¤Ê¤ë¡£TRUE ¤Ç¤â FALSE ¤Ç¤â¤Ê¤¯¤Æ NULL¡£

ÏÀÍý±é»»¤Î¾ì¹ç¤Ï¤Á¤ç¤Ã¤ÈÊ£»¨¡£

NULL ¤Ë¤Ê¤Ã¤¿¾ì¹ç¡¢¤½¤Î¾ò·ï¤Î¾ì¹ç¤Î¼Â¹Ôʸ¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¡£

NULL ¤Îñ½ãÈæ³Ó

Âç¾®Èæ³Ó¡¢ÅùÃÍÈæ³Ó¤Ê¤É¤Îñ½ã¤ÊÈæ³Ó¤Î¾ì¹ç¡¢·ë²Ì¤Ï¾ï¤Ë NULL ¤Ë¤Ê¤ë¡£IF ʸ¤ä CASE ʸ¤ÇȽÄê·ë²Ì¤¬ NULL ¤À¤Ã¤¿¾ì¹ç¡¢¤½¤ÎÉôʬ¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¡£À©¸æ¤Î¾å¤Ç¤Ï°·¤¤¤Ï FALSE ¤ÈƱ¤¸¡£

  • NULL ¤ÎÎã
    declare
        hoge number;
    begin
        -- hoge ¤Ï NULL 
        if hoge > 100 then
            -- ¤³¤³¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤
            ...
        else
            -- º£²ó¤Î¾ì¹ç¤Ï¤³¤³¤¬¼Â¹Ô¤µ¤ì¤ë
            ...
        end if;
    end;
    

NULL ¤ÎÏÀÍý±é»»

TRUE ¤È FALSE ¤È NULL ¤È¤ò AND ¤È¤« OR ¤Ç±é»»¤·¤¿¤é¤É¤¦¤Ê¤ë¤Î¤È¤¤¤¦Ïá£

  • AND ÏÀÍý±é»»
    ANDTFN
    TTFN
    FFFF
    NNFN
  • OR ÏÀÍý±é»»
    ORTFN
    TTTT
    FTFN
    NTNN
  • NOT ÏÀÍý±é»»
    NOT
    TF
    FT
    NN

´ðËÜŪ¤Ê¹Í¤¨Êý¤Ï°Ê²¼¤ÎÄ̤ꡣ

  • AND ¾ò·ï¤Ç¤Ï FALSE ¤¬Í¥Àè¡£OR ¾ò·ï¤Ç¤Ï TRUE ¤¬Í¥Àè
  • AND ¤ÏξÊý TRUE ¤Î¤È¤­¤Î¤ß TRUE
  • OR ¤ÏξÊý FALSE ¤Î¤È¤­¤Î¤ß FALSE

Last-modified: 2011-11-08 (²Ð) 10:39:12