📄 dml023.sql
字号:
AUTOCOMMIT OFF;-- MODULE DML023-- SQL Test Suite, V6.0, Interactive SQL, dml023.sql-- 59-byte ID-- TEd Version #-- AUTHORIZATION HU set schema HU;--O SELECT USER FROM HU.ECCO; VALUES USER;-- RERUN if USER value does not match preceding AUTHORIZATION comment-- date_time print-- TEST:0103 Subquery with comparison predicate! SELECT PNUM FROM PROJ WHERE PROJ.CITY = (SELECT STAFF.CITY FROM STAFF WHERE EMPNUM = 'E1');-- PASS:0103 If 3 rows are selected with PNUMs:'P1','P4','P6?-- END TEST >>> 0103 <<< END TEST-- **************************************************************-- TEST:0104 SQLCODE < 0, subquery with more than 1 value! SELECT PNUM FROM PROJ WHERE PROJ.CITY = (SELECT STAFF.CITY FROM STAFF WHERE EMPNUM > 'E1' );-- PASS:0104 If ERROR, SELECT returns more than 1 row in subquery?-- PASS:0104 If 0 rows are selected? -- END TEST >>> 0104 <<< END TEST-- ************************************************************-- TEST:0105 Subquery in comparison predicate is empty!--O SELECT COUNT(*) SELECT * FROM STAFF WHERE STAFF.CITY = (SELECT PROJ.CITY FROM PROJ WHERE PNUM > 'P7');-- PASS:0105 If count = 0?--O SELECT COUNT(*) SELECT * FROM STAFF WHERE NOT (STAFF.CITY = (SELECT PROJ.CITY FROM PROJ WHERE PNUM > 'P7' ));-- PASS:0105 If count = 0?-- END TEST >>> 0105 <<< END TEST-- *************************************************************-- TEST:0106 Comparison predicate <> ! SELECT PNUM FROM PROJ WHERE CITY <> 'Deale';-- PASS:0106 If 3 rows are selected with PNUMs:'P2','P3','P5'?-- END TEST >>> 0106 <<< END TEST-- *************************************************************-- TEST:0107 Comp predicate with short string logically blank padded!--O SELECT COUNT(*) SELECT empnum FROM WORKS WHERE EMPNUM = 'E1';-- PASS:0107 If count = 6 ?--O SELECT COUNT(*) SELECT empnum FROM WORKS WHERE EMPNUM = 'E1' AND EMPNUM = 'E1 ';-- PASS:0107 If count = 6?-- END TEST >>> 0107 <<< END TEST-- ****************************************************************-- TEST:0180 NULLs sort together in ORDER BY!-- setup UPDATE STAFF SET GRADE = NULL WHERE EMPNUM = 'E1' OR EMPNUM = 'E3' OR EMPNUM = 'E5';-- PASS:0180 If 3 rows are updated? SELECT EMPNUM,GRADE FROM STAFF ORDER BY GRADE,EMPNUM;-- PASS:0180 If 5 rows are selected with NULLs together ?-- PASS:0180 If first EMPNUM is either 'E1' or 'E2'?-- PASS:0180 If last EMPNUM is either 'E4' or 'E5?-- restore ROLLBACK WORK;-- END TEST >>> 0180 <<< END TEST-- ***************************************************************-- TEST:0181 NULLs are equal for DISTINCT!-- setup UPDATE STAFF SET GRADE = NULL WHERE EMPNUM = 'E1' OR EMPNUM = 'E3' OR EMPNUM = 'E5';-- PASS:0181 If 3 rows are updated? SELECT DISTINCT USER, GRADE FROM STAFF ORDER BY GRADE;-- PASS:0181 If 3 rows are selected with GRADEs:10, 12, NULL ?-- PASS:0181 GRADE 10 precedes GRADE 12?-- restore ROLLBACK WORK;-- END TEST >>> 0181 <<< END TEST -- *************************************************////END-OF-MODULE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -