10.5. UNION,CASE¹× °ü·ÃµÈ ±¸¹®

UNION SQL ±¸¹®Àº, ºñ½ÁÇÏÁö ¾ÊÀ» °¡´É¼ºÀÌ ÀÖ´Â ÇüÅÂÀÌ 1°³ÀÇ °Ë»ö °á°ú°¡ µÇµµ·Ï ¸ÅÄ¡½ÃŰÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ÇØ°á ¾Ë°í¸®ÁòÀº 1°³ÀÇ union Äõ¸®ÀÇ Ãâ·Â¿­ ¸¶´Ù Àû¿ëµË´Ï´Ù. INTERSECT±¸¹®°úEXCEPT±¸¹®Àº,UNION¿Í °°Àº ¹æ¹ýÀ¸·Î, ºñ½ÁÇÏÁö ¾ÊÀ» °¡´É¼ºÀÌ ÀÖ´Â ÇüÅÂÀÇ ÇØ°áÀ» ½Ç½ÃÇÕ´Ï´Ù. CASE±¸¹®°úARRAY±¸¹®,VALUES,GREATEST,LEAST µµ ¶ÇÇÑ, µ¿ÀÏÇÑ ¾Ë°í¸®ÁòÀ» »ç¿ëÇØ, ±× ¿ä¼Ò½ÄÀ» ÀûÇÕ½ÃÄÑ, °á°úÀÇ µ¥ÀÌÅÍÇüŸ¦ ¼±ÅÃÇÕ´Ï´Ù.

UNION,CASE¹× °ü·ÃÇÏ´Â ±¸¹® ÇüÅÂÀÇ ÇØ°á

  1. ¸¸¾à ¸ðµç ÀÔ·ÂÄ¡°¡ µ¿ÀÏ ÇüÅ¿´´ø °æ¿ì,unknown¿¡´Â ¾ÈµÇ±â¶§¹®¿¡, ±× ÇüÅ·μ­ ÇØ°áµË´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì´Â, ¸®½ºÆ®³»ÀÇ µµ¸ÞÀÎÇüŸ¦ ±âÃʸ¦ ÀÌ·ç´Â ±âº»ÇüÅ·Π´ëüÇÕ´Ï´Ù.

  2. ¸¸¾à unknownÀÌ ¾Æ´Ñ ÀԷ°ªÀÌ ¸ðµÎ °°Àº ÇüÅ ¸ñ·Ï°¡ ¾Æ´Ï¸é ½ÇÆÐÇÕ´Ï´Ù.

  3. ¸ñ·Ï ³»ÀÇ ¹Ù¶÷Á÷ÇÑ ÇüÅ ¶Ç´Â unknownÀÌ ¾Æ´Ñ ÀÔ·Â °ªÀÌ ÇÔÃàÀûÀ¸·Î º¯È¯µÇ´Â °ÍÀ» ¸ðµÎ Çã¶ôÇÏ´Â ÃÖÃÊÀÇ unknownÀÌ ¾Æ´Ñ ÀÔ·Â µ¥ÀÌÅÍ ÇüŸ¦ ¼±ÅÃÇÕ´Ï´Ù.

  4. ¸ðµç ÀԷ°ªÀ» ¼±ÅÃµÈ ÇüÅ·Πº¯È¯ÇÕ´Ï´Ù.

ÀÌÇÏ¿¡ ¸î°¡Áö ¿¹°¡ ÀÖ½À´Ï´Ù.

Example 10-7. Union³»ÀÇ ÁöÁ¤µÈ ÇüÅ¿¡ À־ÀÇ ÇüÅÂ ÇØ°á

SELECT text 'a' AS "text" UNION SELECT 'b';

 text
------
 a
 b
(2 rows)

¿©±â¼­, unknownÇüÅÂÀÇ ¹®ÀÚ»ó¼ö 'b'´Âtext·Î¼­ ÇØ°áµË´Ï´Ù.

Example 10-8. °£´ÜÇÑ Union³»ÀÇ ÇüÅÂ ÇØ°á

SELECT 1.2 AS "numeric" UNION SELECT 1;

 numeric
---------
       1
     1.2
(2 rows)

numericÇüÅÂÀÇ ¹®ÀÚ»ó¼ö1.2·ÎintegerÇüÅÂÀÇ °ª1Àº, ÇÔÃàÀûÀ¸·Înumeric¿¡ ij½ºÆ®µÇ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù. µû¶ó¼­, ÀÌ ÇüÅ »ç¿ëµË´Ï´Ù.

Example 10-9. ÀÌÇ×µÈ UNION³»ÀÇ ÇüÅÂ ÇØ°á

SELECT 1 AS "real" UNION SELECT CAST('2.2' AS REAL);

 real
------
    1
  2.2
(2 rows)

¿©±â¼­,realÇüŸ¦ ÇÔÃàÀûÀ¸·ÎintegerÇüÅ¿¡ ij½ºÆ® ÇÒ ¼ö ¾ø½À´Ï´Ù¸¸, integerÇüŸ¦ ÇÔÃàÀûÀ¸·ÎrealÇüÅ¿¡ ij½ºÆ® ÇÒ ¼ö Àֱ⠶§¹®¿¡, UNIONÀÇ °á°ú µ¥ÀÌÅÍÇüÅ´ realÇüÅÂÀ¸·Î ÇØ°áµË´Ï´Ù.