日期:2014-05-17  浏览次数:20851 次

sql语句转成oracle
select right('00000'+Convert(nvarchar(50),max(Convert(int,bh)+1)),5) from J_topic where Parentbh=''

这句在oracle里怎么写?谢谢

------解决方案--------------------
请参考:
SQL code

SELECT SUBSTR('00000' || to_char(MAX(to_number(bh)) + 1), 
    LENGTH('00000' || to_char(MAX(to_number(bh)) + 1)) - 5);

------解决方案--------------------
SQL code
SELECT lpad(to_char(max(to_number('123')+1)),10,'0') FROM dual

------解决方案--------------------
select right('00000'+Convert(nvarchar(50),max(Convert(int,bh)+1)),5) from J_topic where Parentbh=''
--'00000'+Convert(nvarchar(50),max(Convert(int,bh)+1))
--max(Convert(int,bh)+1)
--逐步拆解,要求期实很简单,最大编码+1,然后左边补零
--类为BH这个类型为别的类型,需要先做转换。这个转换ORACLE不需要,如果没记错的话,1在做加减等同于'1'
--转换后再换换回字符型,但我没懂,为什么要转为nvarchar
select lpad(max(BH)+1,'0',5) from J_topic where Parentbh='';