Oracle:select substr(isdn,instr('86',isdn),length(isdn)) from tablename
Sybase:select substring(isdn,charindex('86',isdn),datalength(isdn)) from tablename
Oracle:select replace(isdn,'86','') from tablename
Sybase:select str_replace(isdn,'86','') from tablename //比如stuff()好用
以上几个粗体字所代表的关键字实现的功能以及参数都是一样的,但函数名称不一样,需要注意。
未完待续...
使用decode解决查询中的条件问题:
sql1.append(" and decode(substr(othermdn,1,");
sql1.append(GlobalConfig.COUNTRYCODE.length());
sql1.append("),");
sql1.append(DBAUtil.getSqlString(GlobalConfig.COUNTRYCODE));
sql1.append(",substr(othermdn,");
sql1.append(GlobalConfig.COUNTRYCODE.length() + 1);
sql1.append(",length(othermdn)),othermdn)=");
sql1.append(DBAUtil.getSqlString(mobile));
绕过交叉匹配的问题(特殊)
sql1.append(" and othermdn in(");
sql1.append(DBAUtil.getSqlString(DBAUtil.get86Mdn(mobile)));
sql1.append(",");
sql1.append(DBAUtil.getSqlString(DBAUtil.getMdn(mobile)));
sql1.append(")");