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...