oracle函式 總結(使用及在什麼情況下使用)

2021-08-31 04:33:59 字數 1932 閱讀 2296

1、union  --可以把兩個不同的表的資料彙總到乙個結果集中

select id from stud1  union  select id from stud2;   --這樣就會把stud1和stud2 的id都列出來,當然你就可以放到list去了。會自動排序,並且合併相同的記錄。

2、union all 

作用跟union相同,但是不會自動排序,也不會合併相同記錄。

3、decode

decode的語法:

decode(value,if1,then1,if2,then2,if3,then3,...,else)

表示如果value等於if1時,decode函式的結果返回then1,...,如果不等於任何乙個if值,則返回else。

select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary from employee;

表示:salary大於8000 返回1.15倍,如果小於的話為1.2倍,否則返回salary的值。

4、sign

sign()函式根據某個值是0、正數還是負數,分別返回0、1、-1。

5、nvl

語法:nvl(eexpression1, eexpression2)

如果 eexpression1 的計算結果為 null 值,則 nvl( ) 返回 eexpression2。如果 eexpression1 的計算結果不是 null 值,則返回 eexpression1。eexpression1 和 eexpression2 可以是任意一種資料型別。如果 eexpression1 與 eexpression2 的結果皆為 null 值,則 nvl( ) 返回 .null.。

6.substr( string, start_position,

[length ])

取子字串,從start_position開始,取length個,length為可選,如果length為空則返回start

_position後的所有字元。

例如: select substr

('this is a test',6

,2)from dual;        would

return

'is'。

start

_position為負數時,表示從字串尾巴倒著數。

7.oracle case when的用法

select col1, col2,

case

when col3 > 1 and col3 <2

then '1'

when col3 > 2 and col3 <3

then '2'

when col3 > 3 and col3 <4

then '3'

else '4'

end mylevel

from table1

注意點:

1、以case開頭,以end結尾

2、分支中when 後跟條件,then為顯示結果

3、else 為除此之外的預設情況,類似於高階語言程式中switch case的default,可以不加

4、end 後跟別名

8.instr

instr方法的格式為

instr(源字串, 目標字串, 起始位置, 匹配序號)

例如:instr('corporate floor','or', 3, 2)中,源字串為'corporate floor', 目標字串為'or',起始位置為3,取第2個匹配項的位置。

預設查詢順序為從左到右。當起始位置為負數的時候,從右邊開始查詢。

所以select instr('corporate floor', 'or', -1, 1) "instring" from dual的顯示結果是

instring

—————— 14

malloc 函式在keil中使用應注意什麼

在keil 中使用malloc 函式經常會遇到不正常的情況,通常表現為不能正確分配記憶體 空間,或者只能分配很小的空間。出現這個問題的原因大概有三個 1 所用的arm 晶元本身記憶體已經被其 占用,所餘空間不夠malloc分配。解決辦法 a 釋放其他 浪費的ram空間 b 擴容。2 未進行堆的初始化...

oracle常用sql及函式總結

一.dao層入庫到資料庫系統和當前時間不一致的問題 to char sysdate,yyyy mm dd hh24 mi ss 總結 yyyy 表示 年份,mm 表示 月份,dd 表示 天,hh24 表示 小時,mi 表示 分鐘 ss 表示 秒,to char sysdate,yyyy mm dd ...

oracle 索引使用及索引失效總結

容易引起oracle索引失效的原因很多 1 在索引列上使用函式。如substr,decode,instr等,對索引列進行運算.需要建立函式索引就可以解決了。2 新建的表還沒來得及生成統計資訊,分析一下就好了 3 基於cost的成本分析,訪問的表過小,使用全表掃瞄的消耗小於使用索引。4 使用 not ...