oracle函數(shù)if多個條件 oracle if和else if怎么用?
oracle if和else if怎么用?前段時間寫Oracle存儲過程就遇到問題.原來寫成這樣if 1=2 thennullelseif 1=3 thennullend if在PL/SQL編輯環(huán)境下
oracle if和else if怎么用?
前段時間寫Oracle存儲過程就遇到問題.
原來寫成這樣
if 1=2 then
null
elseif 1=3 then
null
end if
在PL/SQL編輯環(huán)境下elseif沒有變色,說明不是關鍵字。
后來改成
if 1=2 then
null
else if 1=3 then
null
end if
編譯時報異常。
去goole上百度了下,很多人都說是 elseif。
又試了N邊,編譯總不能通過。
怒了,直接寫成
if 1=2 then
null
else if 1=3 then
null
end if
end if
問題就解決了。
今天又要在存儲過程中用if...else if ...else if...寫數(shù)據(jù)轉(zhuǎn)換的東東,還按原來那樣寫看著很惡心。
后來發(fā)現(xiàn)是寫成if...elsif...elsif....end if
神啊,終于被我找到答案了。
返回來看看,原來不是elseif,而是elsif,少了個"e"。他大爺?shù)?,干嘛要少個e啊,萬惡的Oracle,真惡心。
不管怎么著,問題總算解決了,把這惡心記在心里,以后不犯同樣錯誤。
oracle存儲過程里的if else?
if( a==1 && b==1) 這樣寫:if a = 1 and b = 1 then-- 里面寫if成立情況的代碼else-- else情況end if if(a==1 | | b==1) 這樣寫:if a = 1 or b = 1 then-- 里面寫if成立情況的代碼else-- else情況end if
oracle怎么寫IF語句?
如果是 SQL 語句里面使用。
使用 DECODE 或者 CASE WHEN
DECODE 的用法就是
DECODE(abc, 50, "A", "B")
CASE WHEN 的用法就是
CASE WHEN abc=50 THEN "A" ELSE "B" END
如果是在存儲過程里面的話,就是簡單的 IF/ELSE 了
SQL 語句的話,就是
SELECT
abc, DECODE(abc, 50, "A", "B")
FROM
表
ORACLE里查詢怎樣寫if語句?。?/h2>
首先要確保這里的 空值 是 NULL,還是0,或是""。 如果是NULL,則: select NVL(mlr,yqlr) as result from table_name select NVL2(mlr,mlr,yqlr) as result from table_name (9i及之后) 如果是0:select NVL(NULLIF(mlr,0),yqlr) as result from table_name (9i及之后)如果是"",可以參照上面處理如果是其它情況的話,可能還要轉(zhuǎn)換判斷一下! 以上僅參考!