Oracle 查詢相關函式

2021-10-07 16:50:58 字數 2711 閱讀 2082

decode(條件,值1,返回值1,值2,返回值2,…值n,返回值n,預設值)

1)比較大小

select decode(sign(變數1-變數2),-1,變數1,變數2) from dual;

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

2)select sum(decode(性別,男,1,0)),sum(decode(性別,女,1,0)) from 表

3)order by對字元列進行特定的排序

例:表table_subject,有subject_name列。要求按照:語、數、外的順序進行排序。

select * from table_subject order by decode(subject_name, '語文', 1, '數學', 2, , ' 外語',3)
desc(從大到小) asc(從小到大)

select

*from

(select

*from

table

where id =

'123'

order

)where

rounum =

1

1)基本

select 

name,

(case

when score <

60then

'不及格'

when score >=

60then

'及格'

when score is

null

then

'缺考'

else

'異常'

end)as

"remark"

from

table

then 和 else 資料型別要一致,注意是空為  is null
2)布林型別判斷

case

when condition then result

[when..

.then..

.]else result

end

condition是乙個返回布林型別的表示式,

如果表示式返回true,則整個函式返回相應result的值,

如果表示式皆為false,則返回else後result的值,

如果省略了else子句,則返回null。

3)求和

select

sum(

case

when score >=

60then

1else

0end

)as 「有加一」,

sum(

case

when score <

60and *** =

'女'then

1else

0end)as

"可以在when中加and"

from

table

4)行轉列,並配合聚合函式做統計e_code

e_value

e_type

北京28.500北京

23.511北京

28.122北京

12.300北京

15.461上海

18.880上海

16.661上海

19.990上海

10.05

0

select 

e_code,

sum(

case

when e_type =

0then e_value else

0end

)as water_energy,

--水耗

sum(

case

when e_type =

1then e_value else

0end

)as ele_energy,

--電耗

sum(

case

when e_type =

2then e_value else

0end

)as heat_energy--熱耗

from

thtf_energy_test

group

by e_code

5) case when 中使子查詢min 上面為準

max 下面為準

group by 為刪除重複資料的條件

1.為規範sql語句加別名使用as,需要注意的是別名不加「」 所得字段值為全部大寫形式。

2.left join table t on t.id = 『123』

Oracle 樹查詢及相關函式

oracle樹查詢的最重要的就是select.start with.connect by prior 語法了。依託於該語法,我們可以將乙個表形結構的中以樹的順序列出來。parent id儲存的是上級id,如果是頂級父節點,該parent id為0 quote 表中最好別有null記錄,這會引起全文掃...

oracle函式相關

1.nvl oracle的nvl函式的用法 通過查詢獲得某個欄位的合計值,如果這個值位null將給出乙個預設的預設值 select nvl sum t.dwxhl 1 from tb jhde t where zydm 1 這裡關心的nvl的用法,nvl arg,value 代表如果前面的arg的值...

oracle相關函式

大寫的ps oracle儲存過程測試進不去解決方案 重新編譯 trunc sysdate,d 1 表示今天所在周的周一的年月日,如今天是2016.04.21周四,則trunc sysdate,d 1表示2016.04.18周一 select trunc sysdate from dual case ...