将SQL Server转换为Oracle

时间:2011-03-17 13:47:56

标签: sql-server oracle

我正在尝试将以下语句从SQL Server转换为Oracle,但我尝试过的所有内容都给出了不同的错误。有谁知道如何将此转换为oracle友好?

select 
    nullif(cast(cast(round(vn02.wheelbase,0,1)-1 as integer) as varchar) + ',' +
      cast(cast(round(vn02.wheelbase,0,1) as integer) as varchar) + ',' + 
      cast(cast(round(vn02.wheelbase,0,1)+1 as integer) as varchar),'-1,0,1') wheelbase
from vn02_fullsv vn02

如果是浮点数,则需要使用逗号分隔符将其附加到自身,以查看它是否等于'-1,0,1',如果是,那么它应该返回null。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这应该接近你想要的:

select (decode(round(vn02.wheelbase,0)-1||','||round(vn02.wheelbase,0)||','||round(vn02.wheelbase,0)+1, '-1,0,1', null,vn02.wheelbase)
from vn02_fullsv vn02;

'||'替换+以连接字符串,并解码替换nullif。 Round与你的例子相同。

以下是Decode上参考的链接,此处是Round的参考。