请教:
SELECT 'IGRP'+RIGHT(1000000001+ISNULL(RIGHT(MAX(ProTeamCode),9),0),9) as ProTeamCode FROM t_ProTeam WITH(XLOCK,PAGLOCK)SELECT RIGHT(1001+ISNULL(RIGHT(MAX(ProTeamVisiTCode),3),0),3) as ProTeamVisitCode FROM t_ProTeamVisit WITH(XLOCK,PAGLOCK) WHERE PROTEAMVisitCode like '{0}%'这两句在SQLSERVER中的语法,在ORACLE中应该如何修改?
SELECT 'IGRP'+RIGHT(1000000001+ISNULL(RIGHT(MAX(ProTeamCode),9),0),9) as ProTeamCode FROM t_ProTeam WITH(XLOCK,PAGLOCK)SELECT RIGHT(1001+ISNULL(RIGHT(MAX(ProTeamVisiTCode),3),0),3) as ProTeamVisitCode FROM t_ProTeamVisit WITH(XLOCK,PAGLOCK) WHERE PROTEAMVisitCode like '{0}%'这两句在SQLSERVER中的语法,在ORACLE中应该如何修改?
这个语句达到的效果是从'abcdefg'取'defg'
SELECT substr(1001+NVL(substr(MAX(ProTeamVisiTCode),-3),0),-3) as ProTeamVisitCode FROM t_ProTeamVisit WHERE PROTEAMVisitCode like '{0}%';WITH(XLOCK,PAGLOCK) 如果是加锁的话,改为 for update??
from a
left join (select * from b) x on a.id=b.id
right('asdf',2)='df';
就是oracle的 substr('asdf',-2);第二个参数为负,表示从右往左截。
http://jinjun001.spaces.live.com/Blog/cns!1pUAHMm-K7gO0MxAWlUsrKWw!196.entry