CASE Ç¥Çö½Ä

CASE Ç¥Çö½ÄÀ» ÅëÇØ Ç¥Çö½Ä¿¡¼­ IF ... THEN ... ELSE ³í¸®¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

°£´ÜÇÑ CASE Ç¥Çö½Ä¿¡¼­ CASE´Â exprÀÌ comparison_exprÀ̸é return_exprÀ» ¹ÝȯÇϴ ù¹øÂ° WHEN ... THEN ½ÖÀ» °Ë»öÇÕ´Ï´Ù. ÀÌ Á¶°ÇÀ» ÃæÁ·ÇÏ´Â WHEN ... THEN ½ÖÀÌ ¾øÀ» °æ¿ì ELSE ÀýÀÌ Á¸ÀçÇϸé CASE´Â else_exprÀ» ¹ÝȯÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é CASE´Â ³ÎÀ» ¹ÝȯÇÕ´Ï´Ù.

°Ë»öµÈ CASE Ç¥Çö½Ä¿¡¼­ CASE´Â trueÀ̸é return_exprÀ» ¹ÝȯÇÏ´Â conditionÀ» ãÀ» ¶§±îÁö ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î °Ë»öÇÕ´Ï´Ù. trueÀÎ conditionÀ» ãÀ» ¼ö ¾ø°í ELSE ÀýÀÌ Á¸ÀçÇÒ °æ¿ì CASE´Â else_exprÀ» ¹ÝȯÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é CASE´Â ³ÎÀ» ¹ÝȯÇÕ´Ï´Ù.

¹Ýȯ°ª

else_expression Àμö¿Í µ¿ÀÏÇÕ´Ï´Ù.

±¸¹®

CASE { simple_case_expression
     | searched_case_expression
     }
     [ ELSE else_expression ]
     END

simple_case_expression::=
     expr WHEN comparison_expr
          THEN return_expr
          [ WHEN comparison_expr
            THEN return_expr ]...

searched_case_expression::=
     WHEN condition THEN return_expr
     [ WHEN condition THEN return_expr ]...

Àμö

exprÀº Æò°¡µÇ´Â ±âº» Ç¥Çö½ÄÀÔ´Ï´Ù.

comparison_exprÀº exprÀÌ Æò°¡µÇ´Â Ç¥Çö½ÄÀÔ´Ï´Ù. ÀÌ Ç¥Çö½ÄÀº expr°ú µ¿ÀÏÇÑ ±âº» µ¥ÀÌÅÍ À¯Çü(¼ýÀÚ ¶Ç´Â ÅØ½ºÆ®)À̾î¾ß ÇÕ´Ï´Ù.

conditionÀº Á¶°Ç Ç¥Çö½ÄÀÔ´Ï´Ù.

return_exprÀº ÀÏÄ¡ Ç׸ñÀ» ã°Å³ª Á¶°ÇÀÌ trueÀÏ ¶§ ¹ÝȯµÇ´Â °ªÀÔ´Ï´Ù.

¿¹Á¦

´ÙÀ½ ¸í·É¹®Àº credit_limitÀÇ °ª¿¡ µû¶ó Low, Medium ¶Ç´Â High¸¦ ¹ÝȯÇÕ´Ï´Ù.

CASE credit_limit WHEN 100 THEN 'Low'
   WHEN 5000 THEN 'High'
   ELSE 'Medium'

´ÙÀ½ ¸í·É¹®Àº 2000º¸´Ù Å©°Å³ª °°À» ¶§ ½ÇÁ¦ ±Þ¿©¸¦ ¹ÝȯÇϰí, 2000 ¹Ì¸¸ÀÏ ¶§ 2000À» ¹ÝȯÇÕ´Ï´Ù.

CASE WHEN salary > 2000 THEN salary
   ELSE 2000 END