台灣最大程式設計社群網站
線上人數
1233
 
會員總數:245903
討論主題:189495
歡迎您免費加入會員
討論區列表 >> Oracle >> select case when 問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
select case when 問題
價值 : 20 QP  點閱數:1224 回應數:3
樓主

Eric16899
初學者
598 136
1829 306
發送站內信

請問 begr_ye 資料有null,有資料長度為1~3
要如何改寫成大於0 ?


//===原本寫法錯誤===

select CASE NVL(length(ltrim(rtrim(begr_ye))),0)
WHEN 0 THEN
null
WHEN 1 THEN
to_number(ltrim(rtrim(begr_ye)))
WHEN 2 THEN
to_number(ltrim(rtrim(begr_ye)))
WHEN 3 THEN
to_number(ltrim(rtrim(begr_ye)))
ELSE
null
END
from BOOK


//====這樣寫ERROR===

select CASE NVL(length(ltrim(rtrim(begr_ye))),0)
WHEN 0 THEN
null
WHEN >=1 THEN
to_number(ltrim(rtrim(begr_ye)))
ELSE
null
END
from BOOK

搜尋相關Tags的文章: [ ORACLE SELECT CASE WHEN ] ,
本篇文章發表於2014-12-30 16:26
1樓
最有價值解答

風燭殘年
捐贈 VP 給 風燭殘年 檢舉此回應


試試這樣吧.


本篇文章回覆於2014-12-30 16:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Eric16899
檢舉此回應
感謝 風~大大

請問若要判斷 區間要如何下SQL ?
EX:
select CASE 價錢
WHEN 0 THEN '免費'
WHEN 價錢>0 且 價錢<=10 THEN '便宜'
WHEN 價錢>10 且 價錢<=100 THEN '貴'
END
本篇文章回覆於2014-12-30 16:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

Hsu,Harry
檢舉此回應
您所提供之Script即為解答, 只要將"且"改成"AND" 即可。
本篇文章回覆於2014-12-31 16:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.