Преобразование SQL Server в Oracle - PullRequest
1 голос
/ 17 марта 2011

Я пытаюсь преобразовать следующий оператор из SQL Server в 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'и если так, то он должен вернуть ноль.

спасибо за помощь.

1 Ответ

1 голос
/ 17 марта 2011

Это должно быть близко к тому, что вы ищете:

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;

'||'заменить +, чтобы объединить строки, и декодирование заменяет нуль.Round работает так же, как ваш пример.

Вот ссылка для ссылки на Decode , а вот ссылка для Round .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...