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

数据库系统

开发平台:

Unix_Linux

  1. --
  2. -- numerology.sql
  3. --
  4. --
  5. -- Test implicit type conversions
  6. -- This fails for Postgres v6.1 (and earlier?)
  7. --  so let's try explicit conversions for now - tgl 97/05/07
  8. --
  9. CREATE TABLE TEMP_FLOAT (f1 FLOAT8);
  10. INSERT INTO TEMP_FLOAT (f1)
  11.   SELECT float8(f1) FROM INT4_TBL;
  12. INSERT INTO TEMP_FLOAT (f1)
  13.   SELECT float8(f1) FROM INT2_TBL;
  14. SELECT '' AS ten, f1 FROM TEMP_FLOAT
  15.   ORDER BY f1;
  16. -- int4
  17. CREATE TABLE TEMP_INT4 (f1 INT4);
  18. INSERT INTO TEMP_INT4 (f1)
  19.   SELECT int4(f1) FROM FLOAT8_TBL
  20.   WHERE (f1 > -2147483647) AND (f1 < 2147483647);
  21. INSERT INTO TEMP_INT4 (f1)
  22.   SELECT int4(f1) FROM INT2_TBL;
  23. SELECT '' AS nine, f1 FROM TEMP_INT4
  24.   ORDER BY f1;
  25. -- int2
  26. CREATE TABLE TEMP_INT2 (f1 INT2);
  27. INSERT INTO TEMP_INT2 (f1)
  28.   SELECT int2(f1) FROM FLOAT8_TBL
  29.   WHERE (f1 >= -32767) AND (f1 <= 32767);
  30. INSERT INTO TEMP_INT2 (f1)
  31.   SELECT int2(f1) FROM INT4_TBL
  32.   WHERE (f1 >= -32767) AND (f1 <= 32767);
  33. SELECT '' AS five, f1 FROM TEMP_INT2
  34.   ORDER BY f1;
  35. --
  36. -- Group-by combinations
  37. --
  38. CREATE TABLE TEMP_GROUP (f1 INT4, f2 INT4, f3 FLOAT8);
  39. INSERT INTO TEMP_GROUP
  40.   SELECT 1, (- i.f1), (- f.f1)
  41.   FROM INT4_TBL i, FLOAT8_TBL f;
  42. INSERT INTO TEMP_GROUP
  43.   SELECT 2, i.f1, f.f1
  44.   FROM INT4_TBL i, FLOAT8_TBL f;
  45. SELECT DISTINCT f1 AS two FROM TEMP_GROUP;
  46. SELECT f1 AS two, max(f3) AS max_float, min(f3) as min_float
  47.   FROM TEMP_GROUP
  48.   GROUP BY two
  49.   ORDER BY two, max_float, min_float;
  50. SELECT f1 AS two, max(f3) AS max_float, min(f3) AS min_float
  51.   FROM TEMP_GROUP
  52.   GROUP BY two
  53.   ORDER BY two, max_float, min_float;
  54. SELECT f1 AS two, (max(f3) + 1) AS max_plus_1, (min(f3) - 1) AS min_minus_1
  55.   FROM TEMP_GROUP
  56.   GROUP BY two
  57.   ORDER BY two, min_minus_1;
  58. SELECT f1 AS two, (max(f3) + 1) AS max_plus_1, (min(f3) - 1) AS min_minus_1
  59.   FROM TEMP_GROUP
  60.   GROUP BY two
  61.   ORDER BY two, min_minus_1;
  62. DROP TABLE TEMP_INT2;
  63. DROP TABLE TEMP_INT4;
  64. DROP TABLE TEMP_FLOAT;
  65. DROP TABLE TEMP_GROUP;