0001
0002
0003
0004
0005
0006
0007
0008 CREATE TEMPORARY VIEW EMP AS SELECT * FROM VALUES
0009 (100, "emp 1", date "2005-01-01", 100.00D, 10),
0010 (100, "emp 1", date "2005-01-01", 100.00D, 10),
0011 (200, "emp 2", date "2003-01-01", 200.00D, 10),
0012 (300, "emp 3", date "2002-01-01", 300.00D, 20),
0013 (400, "emp 4", date "2005-01-01", 400.00D, 30),
0014 (500, "emp 5", date "2001-01-01", 400.00D, NULL),
0015 (600, "emp 6 - no dept", date "2001-01-01", 400.00D, 100),
0016 (700, "emp 7", date "2010-01-01", 400.00D, 100),
0017 (800, "emp 8", date "2016-01-01", 150.00D, 70)
0018 AS EMP(id, emp_name, hiredate, salary, dept_id);
0019
0020 CREATE TEMPORARY VIEW DEPT AS SELECT * FROM VALUES
0021 (10, "dept 1", "CA"),
0022 (20, "dept 2", "NY"),
0023 (30, "dept 3", "TX"),
0024 (40, "dept 4 - unassigned", "OR"),
0025 (50, "dept 5 - unassigned", "NJ"),
0026 (70, "dept 7", "FL")
0027 AS DEPT(dept_id, dept_name, state);
0028
0029 CREATE TEMPORARY VIEW BONUS AS SELECT * FROM VALUES
0030 ("emp 1", 10.00D),
0031 ("emp 1", 20.00D),
0032 ("emp 2", 300.00D),
0033 ("emp 2", 100.00D),
0034 ("emp 3", 300.00D),
0035 ("emp 4", 100.00D),
0036 ("emp 5", 1000.00D),
0037 ("emp 6 - no dept", 500.00D)
0038 AS BONUS(emp_name, bonus_amt);
0039
0040
0041
0042 SELECT *
0043 FROM emp
0044 WHERE EXISTS (SELECT dept.dept_id
0045 FROM dept
0046 WHERE emp.dept_id = dept.dept_id
0047 ORDER BY state)
0048 ORDER BY hiredate;
0049
0050
0051 SELECT id,
0052 hiredate
0053 FROM emp
0054 WHERE EXISTS (SELECT dept.dept_id
0055 FROM dept
0056 WHERE emp.dept_id = dept.dept_id
0057 ORDER BY state)
0058 ORDER BY hiredate DESC;
0059
0060
0061
0062 SELECT *
0063 FROM emp
0064 WHERE NOT EXISTS (SELECT dept.dept_id
0065 FROM dept
0066 WHERE emp.dept_id = dept.dept_id
0067 ORDER BY state)
0068 ORDER BY hiredate;
0069
0070
0071
0072 SELECT emp_name
0073 FROM emp
0074 WHERE NOT EXISTS (SELECT max(dept.dept_id) a
0075 FROM dept
0076 WHERE dept.dept_id = emp.dept_id
0077 GROUP BY state
0078 ORDER BY state);
0079
0080 SELECT count(*)
0081 FROM emp
0082 WHERE NOT EXISTS (SELECT max(dept.dept_id) a
0083 FROM dept
0084 WHERE dept.dept_id = emp.dept_id
0085 GROUP BY dept_id
0086 ORDER BY dept_id);
0087
0088
0089
0090 SELECT *
0091 FROM emp
0092 WHERE EXISTS (SELECT dept.dept_name
0093 FROM dept
0094 WHERE dept.dept_id > 10
0095 LIMIT 1);
0096
0097
0098
0099 SELECT *
0100 FROM emp
0101 WHERE EXISTS (SELECT max(dept.dept_id)
0102 FROM dept
0103 GROUP BY state
0104 LIMIT 1);
0105
0106
0107
0108 SELECT *
0109 FROM emp
0110 WHERE NOT EXISTS (SELECT dept.dept_name
0111 FROM dept
0112 WHERE dept.dept_id > 100
0113 LIMIT 1);
0114
0115
0116
0117 SELECT *
0118 FROM emp
0119 WHERE NOT EXISTS (SELECT max(dept.dept_id)
0120 FROM dept
0121 WHERE dept.dept_id > 100
0122 GROUP BY state
0123 LIMIT 1);