Oracle的排序和限制條件(order by 和where)


1Order by 子句的使用

select column....

from ....

order by ...

 

    1) Order by子句在整個

    select語句中的位置:

    始終位於最后

    2) order by后可以跟什么:

    列名,列的別名,表達式,

    列出現在select關鍵字后的

    順序(列號);

    3) order by后可以跟多列,

    表示先按第一列排序,

    如第一列有相同值再按

    第二列進行排序,如前二列

    均有相同值,則按第三列進行排序...

    4) ASC表升序,可以省略.

    DESC表降序。

    5)空值永遠是最大的。

    升序排序的時候,空值放在最后

   降序排序的時候,空值放在最前面的

note: 出現在order by子句之后的列,不一定出現在select子句中。

 

2Where子句的使用

語法:

select col_name,...

from tb_name

where col_name 比較操作表達式

邏輯操作符

  col_name 比較操作表達式

    1) 作用:對SQL語句返回的數據集進行篩選;

    2) 位置:緊跟在from子句后

    3) 內容:由一至多個限定條件組成,限定條件由表達式, 比較符, 字面值組成。

    4) 所有字符串和日期要用單引號括起來,數值不需要單引號。

    日期在Oracle里有特定的格式,’DD-MON-YY’(具體看日期的顯示格式),

    否則作為一個字符串。

    5) 幾種常見的操作符:

1》邏輯比較操作符

= > < >= <= != <> ^=

需求:查找工資大於1000的所有員工的last_name和工資。

需求:查找不在45號部門工作的所有員工的idlast_namedept_id,並且按照dept_id 升序進行排序

select id,last_name,dept_id

from s_emp

where dept_id<>45

order by dept_id;

 

2sql比較操作符

between and:在什么范圍之內

in(list):在一個列表中

like:模糊查詢,即值不是精確的值的時候使用

通配符,即可以代替任何內容的符號

%:通配0到多個字符

_: 當且僅當通配一個字符

轉義字符:

默認為\,可以指定 指定的時候用escape 符號指明即可,轉義字符只能轉義后面的一個字符

    between 1 and 4: 包括起止值。限定內容為14

in (1,2,4): 限定內容為1,2,4

is null:對null值操作特定義的操作符,不能使用=

3》邏輯操作符

當條件有多個的時候使用

and:且邏輯

or:或邏輯

注意:and邏輯比or邏輯要高

not:非邏輯  

4)

需求:

1.查找員工id[5,20]之間的所有員工的idlast_name

 select id,last_name

 from s_emp

 where id between 5 and 20;

 

or  

select id,last_name

from s_emp

where id >=5 and id<=20;

 

 

2.查找員工id不在[5,20]之間的所有員工的idlast_name

 select id,last_name

 from s_emp

 where id not between 5 and 20;

or

select id,last_name

from s_emp

where id <5 or id > 20;

 

3.查找在43或者44號部門的員工的idlast_name;

select id,last_name

from s_emp

where dept_id in(43,44);

or

select id,last_name

from s_emp

where dept_id = 43 or dept_id = 44;

 

需求:查看員工名字以C字母開頭的員工的id,工資。

 

練習:查看員工名字長度不小於5,且第四個字母為n字母的員工id和工資

 

需求:查看員工名字中包換一個_的員工id和工資

 

需求:查看員工提成為為空的員工的id和名字

select id,last_name,commission_pct

from s_emp

where commission_pct is null;

3.邏輯操作符

當條件有多個的時候使用

and:且邏輯

or:或邏輯

注意:and邏輯比or邏輯要高

not:非邏輯

需求:查看員工部門id41且職位名稱為Stock Clerk(存庫管理員)的員工id和名字

select id,last_name,dept_id,title

from s_emp

where dept_id = 41

and

      title = 'Stock Clerk';

練習:查看員工部門為41 或者 44號部門 且工資大於1000的員工id和名字

select id,last_name,dept_id,title

from s_emp

where salary > 1000

and

      (dept_id = 41

      or

      dept_id = 44);

      查看員工部門為41且工資大於1000 或者 44號部門的員工id和名字

select id,last_name,dept_id,title

from s_emp

where salary > 1000

and

      dept_id = 41

or

      dept_id = 44;

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM