case.out
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:5k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. QUERY: CREATE TABLE CASE_TBL (
  2.   i integer,
  3.   f double precision
  4. );
  5. QUERY: CREATE TABLE CASE2_TBL (
  6.   i integer,
  7.   j integer
  8. );
  9. QUERY: INSERT INTO CASE_TBL VALUES (1, 10.1);
  10. QUERY: INSERT INTO CASE_TBL VALUES (2, 20.2);
  11. QUERY: INSERT INTO CASE_TBL VALUES (3, -30.3);
  12. QUERY: INSERT INTO CASE_TBL VALUES (4, NULL);
  13. QUERY: INSERT INTO CASE2_TBL VALUES (1, -1);
  14. QUERY: INSERT INTO CASE2_TBL VALUES (2, -2);
  15. QUERY: INSERT INTO CASE2_TBL VALUES (3, -3);
  16. QUERY: INSERT INTO CASE2_TBL VALUES (2, -4);
  17. QUERY: INSERT INTO CASE2_TBL VALUES (1, NULL);
  18. QUERY: INSERT INTO CASE2_TBL VALUES (NULL, -6);
  19. QUERY: SELECT '3' AS "One",
  20.   CASE
  21.     WHEN 1 < 2 THEN 3
  22.   END AS "Simple WHEN";
  23. One|Simple WHEN
  24. ---+-----------
  25.   3|          3
  26. (1 row)
  27. QUERY: SELECT '<NULL>' AS "One",
  28.   CASE
  29.     WHEN 1 > 2 THEN 3
  30.   END AS "Simple default";
  31. One   |Simple default
  32. ------+--------------
  33. <NULL>|              
  34. (1 row)
  35. QUERY: SELECT '3' AS "One",
  36.   CASE
  37.     WHEN 1 < 2 THEN 3
  38.     ELSE 4
  39.   END AS "Simple ELSE";
  40. One|Simple ELSE
  41. ---+-----------
  42.   3|          3
  43. (1 row)
  44. QUERY: SELECT '4' AS "One",
  45.   CASE
  46.     WHEN 1 > 2 THEN 3
  47.     ELSE 4
  48.   END AS "ELSE default";
  49. One|ELSE default
  50. ---+------------
  51.   4|           4
  52. (1 row)
  53. QUERY: SELECT '6' AS "One",
  54.   CASE
  55.     WHEN 1 > 2 THEN 3
  56.     WHEN 4 < 5 THEN 6
  57.     ELSE 7
  58.   END AS "Two WHEN with default";
  59. One|Two WHEN with default
  60. ---+---------------------
  61.   6|                    6
  62. (1 row)
  63. QUERY: SELECT '' AS "Five",
  64.   CASE
  65.     WHEN i >= 3 THEN i
  66.   END AS ">= 3 or Null"
  67.   FROM CASE_TBL;
  68. Five|>= 3 or Null
  69. ----+------------
  70.     |            
  71.     |            
  72.     |           3
  73.     |           4
  74. (4 rows)
  75. QUERY: SELECT '' AS "Five",
  76.   CASE WHEN i >= 3 THEN (i + i)
  77.        ELSE i
  78.   END AS "Simplest Math"
  79.   FROM CASE_TBL;
  80. Five|Simplest Math
  81. ----+-------------
  82.     |            1
  83.     |            2
  84.     |            6
  85.     |            8
  86. (4 rows)
  87. QUERY: SELECT '' AS "Five", i AS "Value",
  88.   CASE WHEN (i < 0) THEN 'small'
  89.        WHEN (i = 0) THEN 'zero'
  90.        WHEN (i = 1) THEN 'one'
  91.        WHEN (i = 2) THEN 'two'
  92.        ELSE 'big'
  93.   END AS "Category"
  94.   FROM CASE_TBL;
  95. Five|Value|Category
  96. ----+-----+--------
  97.     |    1|one     
  98.     |    2|two     
  99.     |    3|big     
  100.     |    4|big     
  101. (4 rows)
  102. QUERY: SELECT '' AS "Five",
  103.   CASE WHEN ((i < 0) or (i < 0)) THEN 'small'
  104.        WHEN ((i = 0) or (i = 0)) THEN 'zero'
  105.        WHEN ((i = 1) or (i = 1)) THEN 'one'
  106.        WHEN ((i = 2) or (i = 2)) THEN 'two'
  107.        ELSE 'big'
  108.   END AS "Category"
  109.   FROM CASE_TBL;
  110. Five|Category
  111. ----+--------
  112.     |one     
  113.     |two     
  114.     |big     
  115.     |big     
  116. (4 rows)
  117. QUERY: SELECT * FROM CASE_TBL WHERE COALESCE(f,i) = 4;
  118. i|f
  119. -+-
  120. 4| 
  121. (1 row)
  122. QUERY: SELECT * FROM CASE_TBL WHERE NULLIF(f,i) = 2;
  123. i|f
  124. -+-
  125. (0 rows)
  126. QUERY: SELECT COALESCE(a.f, b.i, b.j)
  127.   FROM CASE_TBL a, CASE2_TBL b;
  128.  case
  129. -----
  130.  10.1
  131.  20.2
  132. -30.3
  133.     1
  134.  10.1
  135.  20.2
  136. -30.3
  137.     2
  138.  10.1
  139.  20.2
  140. -30.3
  141.     3
  142.  10.1
  143.  20.2
  144. -30.3
  145.     2
  146.  10.1
  147.  20.2
  148. -30.3
  149.     1
  150.  10.1
  151.  20.2
  152. -30.3
  153.    -6
  154. (24 rows)
  155. QUERY: SELECT *
  156.   FROM CASE_TBL a, CASE2_TBL b
  157.   WHERE COALESCE(a.f, b.i, b.j) = 2;
  158. i|f|i| j
  159. -+-+-+--
  160. 4| |2|-2
  161. 4| |2|-4
  162. (2 rows)
  163. QUERY: SELECT '' AS Five, NULLIF(a.i,b.i) AS "NULLIF(a.i,b.i)",
  164.   NULLIF(b.i, 4) AS "NULLIF(b.i,4)"
  165.   FROM CASE_TBL a, CASE2_TBL b;
  166. five|NULLIF(a.i,b.i)|NULLIF(b.i,4)
  167. ----+---------------+-------------
  168.     |               |            1
  169.     |              2|            1
  170.     |              3|            1
  171.     |              4|            1
  172.     |              1|            2
  173.     |               |            2
  174.     |              3|            2
  175.     |              4|            2
  176.     |              1|            3
  177.     |              2|            3
  178.     |               |            3
  179.     |              4|            3
  180.     |              1|            2
  181.     |               |            2
  182.     |              3|            2
  183.     |              4|            2
  184.     |               |            1
  185.     |              2|            1
  186.     |              3|            1
  187.     |              4|            1
  188.     |              1|             
  189.     |              2|             
  190.     |              3|             
  191.     |              4|             
  192. (24 rows)
  193. QUERY: SELECT '' AS "Two", *
  194.   FROM CASE_TBL a, CASE2_TBL b
  195.   WHERE COALESCE(f,b.i) = 2;
  196. Two|i|f|i| j
  197. ---+-+-+-+--
  198.    |4| |2|-2
  199.    |4| |2|-4
  200. (2 rows)
  201. QUERY: UPDATE CASE_TBL
  202.   SET i = CASE WHEN i >= 3 THEN (- i)
  203.                 ELSE (2 * i) END;
  204. QUERY: SELECT * FROM CASE_TBL;
  205.  i|    f
  206. --+-----
  207.  2| 10.1
  208.  4| 20.2
  209. -3|-30.3
  210. -4|     
  211. (4 rows)
  212. QUERY: UPDATE CASE_TBL
  213.   SET i = CASE WHEN i >= 2 THEN (2 * i)
  214.                 ELSE (3 * i) END;
  215. QUERY: SELECT * FROM CASE_TBL;
  216.   i|    f
  217. ---+-----
  218.   4| 10.1
  219.   8| 20.2
  220.  -9|-30.3
  221. -12|     
  222. (4 rows)
  223. QUERY: UPDATE CASE_TBL
  224.   SET i = CASE WHEN b.i >= 2 THEN (2 * j)
  225.                 ELSE (3 * j) END
  226.   FROM CASE2_TBL b
  227.   WHERE j = -CASE_TBL.i;
  228. QUERY: SELECT * FROM CASE_TBL;
  229.   i|    f
  230. ---+-----
  231.   8| 20.2
  232.  -9|-30.3
  233. -12|     
  234.  -8| 10.1
  235. (4 rows)
  236. QUERY: DROP TABLE CASE_TBL;
  237. QUERY: DROP TABLE CASE2_TBL;