Oracle SQL:经典查询练手第二篇

发表于:2011-6-27 10:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:胡勇    来源:51Testing软件测试网采编

  1. -------5. 列出不属于SALES 的部门。----------  
  2. SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME <> 'SALES';  
  3.    
  4. DEPTNO DNAME          LOC  
  5. ------ -------------- -------------  
  6.     10 ACCOUNTING     NEW YORK  
  7.     20 RESEARCH       DALLAS  
  8.     40 OPERATIONS     BOSTON  
  9.     50 50abc          50def  
  10.     60 Developer      HaiKou  
  11.    110 信息科         海口  
  12.    
  13. rows selected  
  14.  
  15. --或者:  
  16. SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME != 'SALES';  
  17. SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME NOT IN('SALES');  
  18. SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME NOT LIKE 'SALES';

  1. ---6. 显示工资不在1000 到1500 之间的员工信息:名字、工资,按工资从大到小排序。---------  
  2. SQL> SELECT ENAME,SAL + COMM AS WAGE FROM SCOTT.EMP  
  3.   2  WHERE SAL + COMM NOT BETWEEN 1000 AND 1500  
  4.   3  ORDER BY WAGE DESC;  
  5.    
  6. ENAME            WAGE  
  7. ---------- ----------  
  8. EricHu           5514  
  9. huyong           5514  
  10. WANGJING         5514  
  11. MARTIN           2650  
  12. ALLEN            1900  
  13. WARD             1750  
  14.    
  15. rows selected  
  16. --或者  
  17. SQL> SELECT ENAME,SAL + COMM AS WAGE FROM SCOTT.EMP  
  18.   2  WHERE SAL + COMM < 1000 OR SAL + COMM > 1500  
  19.   3  ORDER BY WAGE DESC;  
  20.    
  21. ENAME            WAGE  
  22. ---------- ----------  
  23. EricHu           5514  
  24. huyong           5514  
  25. WANGJING         5514  
  26. MARTIN           2650  
  27. ALLEN            1900  
  28. WARD             1750  
  29.    
  30. rows selected

  1. /*----- 7. 显示职位为MANAGER 和SALESMAN,年薪在15000 和20000 之间的员工的信息:名字、职位、年薪。----------*/  
  2. SQL> SELECT ENAME 姓名,JOB 职位,(SAL + COMM) * 12 AS 年薪  
  3.   2  FROM SCOTT.EMP  
  4.   3  WHERE (SAL + COMM) * 12 BETWEEN 15000 AND 20000  
  5.   4  AND JOB IN('MANAGER','SALESMAN');  
  6.    
  7. 姓名       职位              年薪  
  8. ---------- --------- ----------  
  9. TURNER     SALESMAN       18000

  1. /*----- 8. 说明以下两条SQL语句的输出结果:  
  2.     SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;  
  3.     SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;  
  4. ----------*/  
  5. SQL> SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;  
  6.    
  7. EMPNO      COMM  
  8. ----- ---------  
  9.  7369   
  10.  7566   
  11.  7698   
  12.  7782   
  13.  7788   
  14.  7839   
  15.  7876   
  16.  7900   
  17.  7902   
  18.  7934   
  19.    
  20. 10 rows selected  
  21.  
  22. ---------------------------------------------------------------  
  23. SQL> SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;  
  24.    
  25. EMPNO      COMM  
  26. ----- ---------  
  27.  
  28. --说明:IS NULL是判断某个字段是否为空,为空并不等价于为空字符串或为数字0;  
  29. --而 =NULL 是判断某个值是否等于 NULL,NULL = NULL和NULL <> NULL都为 FALSE。

43/4<1234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号