Instring功能我在與VARCHAR2列「Detail_Number」有記錄的Oracle數據庫中的表可以看出如下─案例條件和在Oracle
Detail_Number
--------------
P1464187
1-17J3P
VAR1460621
P15000566
VRH-P146310034
RH-73082_SS1
19502744
現在,我想用一個case語句,其如果特殊字符存在,則只返回特殊字符'_'之前的Detail_Number列的部分。否則,只需返回Detail_Number。
我寫的case語句是 -
CASE
WHEN INSTR(A.AGREEMENT_NUMBER, '_') IS NOT NULL THEN SUBSTR(A.AGREEMENT_NUMBER, 0, INSTR(A.AGREEMENT_NUMBER, '_')-1)
WHEN INSTR(A.AGREEMENT_NUMBER, '_') = 0 THEN A.AGREEMENT_NUMBER
--ELSE A.AGREEMENT_NUMBER
END AS Output
查詢的結果如下 -
Detail_Number Output
------------- --------
P1464187
1-17J3P
VAR1460621
P15000566
VRH-P146310034
RH-73082_SS1 RH-73082
19502744
在這裏,我以後獲得部分 '_' 得到跳過。但是,如果'_'不存在,它將返回空值。你可以幫助我嗎?
謝謝。
什麼是你想要的結果嗎? – Mihai 2015-02-06 18:44:57
我想出溶液 - – 0nir 2015-02-06 18:44:57
CASE WHEN INSTR(A.AGREEMENT_NUMBER, '_')<> 0 THEN SUBSTR(A.AGREEMENT_NUMBER,0,INSTR(A.AGREEMENT_NUMBER, '_') - 1) WHEN INSTR( A.AGREEMENT_NUMBER,'_')= 0那麼A.AGREEMENT_NUMBER --ELSE A.AGREEMENT_NUMBER END AS輸出 – 0nir 2015-02-06 18:45:39