熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle基本查詢過濾排序示例解析

2022-06-13   來源: Oracle 
以下是對Oracle中的基本查詢過濾排序示例進行了詳細的分析介紹需要的朋友可以參考下  

  基本查詢

復制代碼 代碼如下:
查詢所有員工的信息
select * from emp;
設置行寬
set linesize ;
設置列寬為四個數字的寬度
col empno for ;
設置列寬a表示字符串共八位長度
col ename for a
設置pageSize每頁顯示條記錄
set pagesize ;
sql中支持算數表達式注意如果一個表達式中含有空值則整個表達式為空
select empnoenamesalsal*commsal*+comm from emp;
使用濾空函數如果comm為空將以代替
select empnoenamesalsal*commsal*+nvl(comm) from emp;
使用別名的三種方式別名中有無雙引號的區別帶雙引號的可以包含空格和特殊字符不帶雙引號的則不能
select empno as "員工編號"ename "姓名"sal 月薪commsal*+nvl(comm)年收入 from emp;
關於disctinct相同記錄只取一次
select distinct deptno from emp;
當disctinct跟多個值時當deptno和job均一樣時才認為是相同記錄
select distinct deptnojob from emp;
連接符的使用
select ename ||的薪水是||sal from emp;

  
注意
SQL 語言大小寫不敏感
SQL 可以寫在一行或者多行
關鍵字不能被縮寫也不能分行
各子句一般要分行寫
使用縮進提高語句的可讀性

過濾和排序

復制代碼 代碼如下:
查詢系統參數
select * from v$nls_parameters;
修改日期格式
alter session set NLS_DATE_FORMAT=yyyymmdd;
隱士方式轉換日期會影響性能
select * from emp where hiredate=;
顯示方式轉換日期
select * from emp where hiredate=to_date(yyyymmdd);
比較運算符查詢工資大於小於的員工between and含邊界
select * from emp where sal>= and sal<=;
select * from emp where sal between and ;
in: 在集合中查詢號部門和號部門的員工
select * from emp where deptno= or deptno=;
select * from emp where deptno in ();
模糊查詢:查詢名字以S打頭的員工
select * from emp where ename like S%;
查詢名字有四個字的員工要求四個下劃線
select * from emp where ename like ____;
查詢姓名中含義下劃線的員工_下劃線為特殊字符需要轉義escape 聲明轉義
select * from emp where ename like %\_% escape \;
查詢獎金不為空的員工
select * from emp where comm is not null;
查詢員工信息按照月薪排序
select * from emp order by sal;
a命令追加命令將上邊改為降序排序
a  desc
查詢員工信息按照年薪排序
select empnoenamesalsal* from emp order by sal*;
order by後面可以跟別名
select empnoenamesalsal* 年薪 from emp order by 年薪;
order by後面可以跟序號
select empnoenamesalsal* from emp order by ;
order by作用於多列先按照第一列排序然後按照第二列排
select * from emp order by deptnosal;
order by作用於多列降序需要每列均有desc
select * from emp order by deptno descsal desc
將空值排到最後
select * from emp order by comm desc nulls last;
屏蔽/開啟反饋信息
set feedback off/set feedback on

  
排序的規則
可以按照select語句中的列名排序
可以按照別名列名排序
可以按照select語句中的列名的順序值排序
如果要按照多列進行排序則規則是先按照第一列排序如果相同則按照第二列排序以此類推


From:http://tw.wingwit.com/Article/program/Oracle/201311/19117.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.