Oracle資料庫系列二

2021-08-20 13:02:54 字數 2586 閱讀 8185

1. 查詢結果排序

在查詢排序中,根據指定列排序,除了使用列名之外,還可以使用列的序號;如order by empno,empname = order by 1,2; 根據多個字段排序: order by a asc,b desc;

2. 字串擷取函式substr()

語法:substr(字串,擷取開始位置,擷取長度)

select substr('hello world',0,1) value

from dual; //返回結果為 'h',從字串第乙個字元開始擷取長度為1的字串

select substr('hello world',1,1) value

from dual; //返回結果為 'h',0和1都是表示擷取的開始位置為第乙個字元

select substr('hello world',2,4) value

from dual; //返回結果為 'ello'

select substr('hello world',-3,3) value

from dual;//返回結果為 'rld',負數(-i)表示擷取的開始位置為字串右端向左數第i個字元

3. 字元替換函式 translate()

oracle提供了乙個【字元】替換函式translate,不同於replace函式的是,translate函式是【字元】級別的替換,而不是【字串】的替換。

語法:ranslate(expr, from_string, to_string)

translate()函式的使用規則大致如下:

1. translate函式是以字元為單位逐一替換的。

2. 如果第三個引數to_string的長度小於第二個引數from_string,那麼from_string的後邊超出的部分都被替換為空值。

3. 如果某乙個字元多次出現,則以第一次替換的內容為準。

示例:

sql> select translate('123456789','456','abc') from dual;

translate

---------

123abc789

sql> select translate('123456789','456','ab') from dual;

translat

--------

123ab789

sql> select translate('123456789','4564','a') from dual;

translat

-------

123a789

sql> select translate('123456789','4564','abcd') from dual;

translate

---------

123abc789

sql> select translate('123456789','4564','') from dual;

translate

---------

4. case when then end

查詢要求:工資在1000-2000元之間的員工排在前面: 利用case when then else end 生成一列,或者 根據case when then 進行排序。

1. select username, case

when sal>1000

and sal <200

then

1else

2end

as grade,sal from emp order

by2,3;

2. select username,sal from emp order

bycase

when sal>1000

and sal<2000

then

1else

2end,2;

5. 根據某一字段的某幾個字元排序

使用order by 列序號結合substr()函式

select last_name,salary,telphone,substr(telphone,-4) from emp order

by4;

6. 排序的字段為空時的處理方法

根據某乙個字段排序,經常會遇到欄位為空的現象,預設情況下空值時排在後面的,若想空值空值的排序,可以使用nulls first 和 nulls last;

select ename from emp order

by emp nulls first;

Oracle資料庫系列一

平常工作和學習過程中總結的oracle資料的些許知識。基本的查詢語法不是此文重點,在此只是將工作中常用的語法和函式和示例托舉而出。1.空值轉換函式 在資料庫欄位的查詢和簡單運算中,經常會遇到欄位為空的現象,需要對空做簡單處理,oracle提供兩種空值轉換函式 nvl 和coalesce 如果欄位為空...

oracle資料庫基礎二

1.查詢等待資源的會話的檢視 v session和v session wait 2.三中收集advisory statistics buffer cache advice,segment level statistics,timed statistics 3.檢視資料庫的時區 select dbti...

oracle資料庫併發二

如果乙個會話持有某個資源的鎖,而另乙個會話在請求這個資源,就會出現阻塞 blocking 這樣一來,請求的會話會被阻塞,它會 掛起 直至持有鎖的會話放棄鎖定的資源。資料庫中有5 條常見的dml 語句可能會阻塞,具體是 insert update delete merge 和select for up...