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 ÏÀÍý±é»»
AND T F N T T F N F F F F N N F N
- OR ÏÀÍý±é»»
OR T F N T T T T F T F N N T N N
- NOT ÏÀÍý±é»»
NOT T F F T N N
´ðËÜŪ¤Ê¹Í¤¨Êý¤Ï°Ê²¼¤ÎÄ̤ꡣ
- AND ¾ò·ï¤Ç¤Ï FALSE ¤¬Í¥Àè¡£OR ¾ò·ï¤Ç¤Ï TRUE ¤¬Í¥Àè
- AND ¤ÏξÊý TRUE ¤Î¤È¤¤Î¤ß TRUE
- OR ¤ÏξÊý FALSE ¤Î¤È¤¤Î¤ß FALSE
Last-modified: 2011-11-08 (²Ð) 10:39:12