⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 case.out

📁 PostgreSQL 8.1.4的源码 适用于Linux下的开源数据库系统
💻 OUT
字号:
---- CASE-- Test the case statement--CREATE TABLE CASE_TBL (  i integer,  f double precision);CREATE TABLE CASE2_TBL (  i integer,  j integer);INSERT INTO CASE_TBL VALUES (1, 10.1);INSERT INTO CASE_TBL VALUES (2, 20.2);INSERT INTO CASE_TBL VALUES (3, -30.3);INSERT INTO CASE_TBL VALUES (4, NULL);INSERT INTO CASE2_TBL VALUES (1, -1);INSERT INTO CASE2_TBL VALUES (2, -2);INSERT INTO CASE2_TBL VALUES (3, -3);INSERT INTO CASE2_TBL VALUES (2, -4);INSERT INTO CASE2_TBL VALUES (1, NULL);INSERT INTO CASE2_TBL VALUES (NULL, -6);---- Simplest examples without tables--SELECT '3' AS "One",  CASE    WHEN 1 < 2 THEN 3  END AS "Simple WHEN"; One | Simple WHEN -----+------------- 3   |           3(1 row)SELECT '<NULL>' AS "One",  CASE    WHEN 1 > 2 THEN 3  END AS "Simple default";  One   | Simple default --------+---------------- <NULL> |               (1 row)SELECT '3' AS "One",  CASE    WHEN 1 < 2 THEN 3    ELSE 4  END AS "Simple ELSE"; One | Simple ELSE -----+------------- 3   |           3(1 row)SELECT '4' AS "One",  CASE    WHEN 1 > 2 THEN 3    ELSE 4  END AS "ELSE default"; One | ELSE default -----+-------------- 4   |            4(1 row)SELECT '6' AS "One",  CASE    WHEN 1 > 2 THEN 3    WHEN 4 < 5 THEN 6    ELSE 7  END AS "Two WHEN with default"; One | Two WHEN with default -----+----------------------- 6   |                     6(1 row)-- Constant-expression folding shouldn't evaluate unreachable subexpressionsSELECT CASE WHEN 1=0 THEN 1/0 WHEN 1=1 THEN 1 ELSE 2/0 END; case ------    1(1 row)SELECT CASE 1 WHEN 0 THEN 1/0 WHEN 1 THEN 1 ELSE 2/0 END; case ------    1(1 row)-- However we do not currently suppress folding of potentially-- reachable subexpressionsSELECT CASE WHEN i > 100 THEN 1/0 ELSE 0 END FROM case_tbl;ERROR:  division by zero-- Test for cases involving untyped literals in test expressionSELECT CASE 'a' WHEN 'a' THEN 1 ELSE 2 END; case ------    1(1 row)---- Examples of targets involving tables--SELECT '' AS "Five",  CASE    WHEN i >= 3 THEN i  END AS ">= 3 or Null"  FROM CASE_TBL; Five | >= 3 or Null ------+--------------      |                   |                   |            3      |            4(4 rows)SELECT '' AS "Five",  CASE WHEN i >= 3 THEN (i + i)       ELSE i  END AS "Simplest Math"  FROM CASE_TBL; Five | Simplest Math ------+---------------      |             1      |             2      |             6      |             8(4 rows)SELECT '' AS "Five", i AS "Value",  CASE WHEN (i < 0) THEN 'small'       WHEN (i = 0) THEN 'zero'       WHEN (i = 1) THEN 'one'       WHEN (i = 2) THEN 'two'       ELSE 'big'  END AS "Category"  FROM CASE_TBL; Five | Value | Category ------+-------+----------      |     1 | one      |     2 | two      |     3 | big      |     4 | big(4 rows)SELECT '' AS "Five",  CASE WHEN ((i < 0) or (i < 0)) THEN 'small'       WHEN ((i = 0) or (i = 0)) THEN 'zero'       WHEN ((i = 1) or (i = 1)) THEN 'one'       WHEN ((i = 2) or (i = 2)) THEN 'two'       ELSE 'big'  END AS "Category"  FROM CASE_TBL; Five | Category ------+----------      | one      | two      | big      | big(4 rows)---- Examples of qualifications involving tables------ NULLIF() and COALESCE()-- Shorthand forms for typical CASE constructs--  defined in the SQL92 standard.--SELECT * FROM CASE_TBL WHERE COALESCE(f,i) = 4; i | f ---+--- 4 |  (1 row)SELECT * FROM CASE_TBL WHERE NULLIF(f,i) = 2; i | f ---+---(0 rows)SELECT COALESCE(a.f, b.i, b.j)  FROM CASE_TBL a, CASE2_TBL b; coalesce ----------     10.1     20.2    -30.3        1     10.1     20.2    -30.3        2     10.1     20.2    -30.3        3     10.1     20.2    -30.3        2     10.1     20.2    -30.3        1     10.1     20.2    -30.3       -6(24 rows)SELECT *  FROM CASE_TBL a, CASE2_TBL b  WHERE COALESCE(a.f, b.i, b.j) = 2; i | f | i | j  ---+---+---+---- 4 |   | 2 | -2 4 |   | 2 | -4(2 rows)SELECT '' AS Five, NULLIF(a.i,b.i) AS "NULLIF(a.i,b.i)",  NULLIF(b.i, 4) AS "NULLIF(b.i,4)"  FROM CASE_TBL a, CASE2_TBL b; five | NULLIF(a.i,b.i) | NULLIF(b.i,4) ------+-----------------+---------------      |                 |             1      |               2 |             1      |               3 |             1      |               4 |             1      |               1 |             2      |                 |             2      |               3 |             2      |               4 |             2      |               1 |             3      |               2 |             3      |                 |             3      |               4 |             3      |               1 |             2      |                 |             2      |               3 |             2      |               4 |             2      |                 |             1      |               2 |             1      |               3 |             1      |               4 |             1      |               1 |                    |               2 |                    |               3 |                    |               4 |              (24 rows)SELECT '' AS "Two", *  FROM CASE_TBL a, CASE2_TBL b  WHERE COALESCE(f,b.i) = 2; Two | i | f | i | j  -----+---+---+---+----     | 4 |   | 2 | -2     | 4 |   | 2 | -4(2 rows)---- Examples of updates involving tables--UPDATE CASE_TBL  SET i = CASE WHEN i >= 3 THEN (- i)                ELSE (2 * i) END;SELECT * FROM CASE_TBL; i  |   f   ----+-------  2 |  10.1  4 |  20.2 -3 | -30.3 -4 |      (4 rows)UPDATE CASE_TBL  SET i = CASE WHEN i >= 2 THEN (2 * i)                ELSE (3 * i) END;SELECT * FROM CASE_TBL;  i  |   f   -----+-------   4 |  10.1   8 |  20.2  -9 | -30.3 -12 |      (4 rows)UPDATE CASE_TBL  SET i = CASE WHEN b.i >= 2 THEN (2 * j)                ELSE (3 * j) END  FROM CASE2_TBL b  WHERE j = -CASE_TBL.i;SELECT * FROM CASE_TBL;  i  |   f   -----+-------   8 |  20.2  -9 | -30.3 -12 |        -8 |  10.1(4 rows)---- Clean up--DROP TABLE CASE_TBL;DROP TABLE CASE2_TBL;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -