2015-12-08 37 views
0

我正在查看SAP數據服務(BODS)中的數據流。表(WORKCODE)中的一列'Reg'具有雙值(例如8.33E-02)。任何人都可以請解釋下面的表達是什麼在「索引」下面表達的功能:SAP數據服務中的索引功能

substr(WORKCODES.Reg, 1, (index (upper (WORKCODES.Reg),'E',1)-1)) 

回答

1

我剛剛看到您的文章,因爲我正在尋找有關BODS索引功能的信息。 索引函數返回字符串值中字符的位置。等效的sql函數是INSTR。

在您的例子(如爲8.33E-02):

SUBSTR('8.33E-02', 1, INDEX ('8.33E-02', 'E', 1)-1) 

==>INDEX ('8.33E-02', 'E', 1)將回到開始的位置是1字母 'E' 的位置應該是5

然後使用SUBSTR函數抽取你的電話號碼的第一部分:

SUBSTR(String Value, Start Pos, End Pos) 
SUBSTR('8.33E-02',  1,   INDEX ('8.33E-02', 'E', 1)-1) 
SUBSTR('8.33E-02',  1,   5-1) 

你減去1到「E」的位置,以保持第一部分!

回答永遠不會太晚! =)

SQL等效:

SELECT SUBSTR('8.33E-02', 1, INSTR ('8.33E-02', 'E')-1) 
    , INSTR ('8.33E-02', 'E') 
FROM DUAL 

香精