tft每日頭條

 > 生活

 > oracle管道函數的使用

oracle管道函數的使用

生活 更新时间:2024-07-20 08:18:29

oracle管道函數的使用(Oracle部分函數的使用)1

1.decode ()請點擊此處輸入圖片描述

用法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value 等于if1時,DECODE函數的結 果返回then1,...,如果不等于任何一個if值,則返回else。初看一下,DECODE 隻能做等于測試,但剛才也看 到了,我們通過一些函數或計算替代value,是可以使DECODE函數具備大于、小于或等于功能。 

oracle管道函數的使用(Oracle部分函數的使用)2

該函數的含義如下:

IF 條件=值1 THEN

RETURN(翻譯值1)

ELSIF 條件=值2 THEN

RETURN(翻譯值2)

......

ELSIF 條件=值n THEN

RETURN(翻譯值n)

ELSE

RETURN(缺省值)

END IF

該函數的含義如下:

IF 條件=值1 THEN

RETURN(翻譯值1)

ELSIF 條件=值2 THEN

RETURN(翻譯值2)

......

ELSIF 條件=值n THEN

RETURN(翻譯值n)

ELSE

RETURN(缺省值)

END IF

2.case ()

用法:case when 'a' then 'b' else 'c' end

例子1:case when sex=1

then '男'

else '女'

end

例子2:

CASE WHEN sex=1

THEN (case when age>=18

then '成年男人'

else ‘未成年男孩’

end)

ELSE (case when age>=18

then '成年女人'

else '未成年女孩'

3.concat(a,b)

用法:拼接字符串

例子:concat(a,’%’)給a加上%号

連接多個字符串用||

select title,concat(round((retail-cost)/cost*100),'%') from Tbl_Books;

select Category || ' - ' || Title as 圖書類别 from tbl_books;

4.round(a,b)截取數字

格式如下:ROUND(number[,decimals])

其中:number 待做截取處理的數值

decimals 指明需保留小數點後面的位數。可選項,忽略它則截去所有的小數部分,并四舍五入。如果為負數則表示從小數點開始左邊的位數,相應整數數字用0填充,小數被去掉。對截取的數字要四舍五入。

例子:select title,concat(round((retail-cost)/cost*100),'%') from Tbl_Books;

5.ceil(n)和floor(n)

ceil(n) 取大于等于數值n的最小整數;

例子:select title,ceil(cost) from Tbl_Books;

floor(n)取小于等于數值n的最大整數;

  6.trunc函數處理數字  

trunc函數返回處理後的數值,其工作機制與ROUND函數極為類似,隻是該函數不對指定小數前或後的部分做相應舍入選擇處理,而統統截去。

其具體的語法格式如下

TRUNC(number[,decimals])

其中:

number 待做截取處理的數值

decimals 指明需保留小數點後面的位數。可選項,忽略它則截去所有的小數部分。

例子:select title,cost,retail,trunc(cost),trunc(retail) from Tbl_Books;

7.lpad( string, padded_length, [ pad_string ] )  

  string

準備被填充的字符串;

padded_length

填充之後的字符串長度,也就是該函數返回的字符串長度,如果這個數量比原字符串的長度要短,lpad 函數将會把字符串截取成從左到右的n個字符;

pad_string

填充字符串,是個可選參數,這個字符串是要粘貼到string的左邊,如果這個參數未寫,lpad函數将會 在string的左邊粘貼空格。

例子:select lpad(Customer_name || '/' || address || '/' || city,80) as 顧客信息 from Tbl_Customer;

8.substr(字符串,截取開始位置,截取長度) //返回截取的字;

  例子:select substr(Name,0,4) as 出版社,substr(Contact,0,1) as 姓 from Tbl_Publisher;

9.replace()

含義為:替換字符串

replace(原字段,“原字段舊内容“,“原字段新内容“,)

select customer_name, replace(city,'上海','ShangHai') as city from Tbl_Customer;

10.NULLIF ( expression1 , expression2 )

常量、列名、函數、子查詢或算術運算符、按位運算符以及字符串運算符的任意組合。

返回類型與第一個 expression1 相同。

輸出結果:

如果兩個表達式不相等,NULLIF 返回第一個 expression1 的值。

如果兩個表達式相等,NULLIF 返回空值NULL。

常量、列名、函數、子查詢或算術運算符、按位運算符以及字符串運算符的任意組合。

返回類型與第一個 expression1 相同。

輸出結果:

如果兩個表達式不相等,NULLIF 返回第一個 expression1 的值。

如果兩個表達式相等,NULLIF 返回空值NULL。

例子:select Customer_name ,nullif(nullif(City,'北京'),'上海') from tbl_customer;

11.Posstr(a,b)返回b在a中的位置

例子:select posstr(title,'子') from Tbl_Books;

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved