在oracle和sql server中查找子字符串的常用方法



嗨,我在下面的sql查询中使用了oracle中的SUBSTR,我需要修改SUBSTR,以便该查询同时适用于oracle和sql server

注意:在oracle中我们有SUBSTR,在sql server中我们有SUBSTRING、LEFT、RIGHT,但我需要在oracle和sql server数据库中都能工作的通用查询。

SELECT INA.LOCATION_CODE,INA.ACCT_NUM,INA.STATE_ENTRY_DATE,FP.NUM_INA_DYS_BF_PUR FROM INACTIVE_ACCOUNT INA  
LEFT JOIN FUNCTIONAL_AREA FA ON INA.LOCATION_CODE=FA.LOCATION_CODE AND SUBSTR(INA.RETURN_TO_STE_CODE,0,1)=FA.FUNC_STATE_ENTR_KY
JOIN FUNC_AREA_PARAM FP ON FA.GUID=FP.PARN_GUID;

没有这样的函数。试图用完全相同的语法编写跨不同数据库运行的代码是愚蠢的。大多数数据库之间有太多细微的差异,这通常是不可能的。

也就是说,在这种情况下,你可以做一些事情:

ON INA.LOCATION_CODE = FA.LOCATION_CODE AND
INA.RETURN_TO_STE_CODE LIKE CONCAT(FA.FUNC_STATE_ENTR_KY, '%')

这应该在两个数据库中都有效。那是因为你很幸运。

最新更新