2015-10-23 220 views
0

我將以下informatica代碼轉換爲SQL。我遇到了一些問題,並希望用下面的代碼幫助: SUBSTR(COV_REINS_CONCAT_BK,INSTR(COV_REINS_CONCAT_BK,「|」,1,3)+1,2)將Informatica代碼轉換爲SQL代碼

也就是說,我要尋找的等效代碼在SQL Server中產生相同的結果。

我很感謝任何人的幫助!

回答

1

SUBSTR的等價物是SUBSTRING

INSTR的等價物是CHARINDEX,但它具有相反的前2個參數,並且不支持第4個參數(發生)。

表達式在第三次出現|時返回2個字符| (管)。 示例:它將爲'A | BC | DE | FGH'返回'FG'。

所以翻譯爲:

SUBSTRING(COV_REINS_CONCAT_BK,1+CHARINDEX('|',COV_REINS_CONCAT_BK,1+CHARINDEX('|' 
    ,COV_REINS_CONCAT_BK,1+CHARINDEX('|',COV_REINS_CONCAT_BK))),2) 
+0

嗨科斯明,非常感謝您的幫助。代碼完美工作。你能幫助以下;它類似於上面的代碼,但是它仍然有點複雜:LTRIM(RTRIM(SUBSTR(COV_REINS_CONCAT_BK,11,INSTR(COV_REINS_CONCAT_BK,'|',1,3)-INSTR(COV_REINS_CONCAT_BK,'|',1 ,2)-1)))|| 'C' – mike

+0

使用出現參數來移植大量使用INSTR的表達式變得越來越困難。 也許在您的MS-SQL數據庫中創建一個支持出現參數的INSTR等效函數會更容易。看看這裏如何:http://www.sqlines.com/oracle/functions/instr 然後從評論表達式變得更容易翻譯:LTRIM(RTRIM(SUBSTRING(COV_REINS_CONCAT_BK,11,dbo.INSTR(COV_REINS_CONCAT_BK,'| ',1,3)-dbo.INSTR(COV_REINS_CONCAT_BK,'|',1,2)-1)))+'C' 這裏SUBSTR變成SUBSTRING,INSTR變成dbo.INSTR和concatenation ||將會是+。 –