Замена не работает в Sybase

Я пытался следовать в Sybase

SELECT ChrgAmt, REPLACE(convert(varchar(255),ChrgAmt), '.', '') AS Result
FROM PaymentSummary

Но это дает ниже ошибку в isql

Incorrect syntax near the keyword 'REPLACE'.

Что может быть возможной причиной

Спасибо

5 ответов

Решение

Предполагая, что есть только одна десятичная точка, вы можете сделать это следующим образом:

   stuff(convert(varchar(255), chrgamt),
         charindex('.', ChrgAmt),
         1, NULL)

На Sybase ASE есть функция str_replace

SELECT ChrgAmt, str_replace(convert(varchar(255),ChrgAmt), '.', '') AS Result
FROM PaymentSummary 

Вы также можете использовать бросок вместо convert как показано ниже

SELECT ChrgAmt, str_replace(cast(ChrgAmt as varchar(255)), '.', '') AS Result
FROM PaymentSummary 

Sybase ASE использует str_replace() вместо replace ()

Проблема вашего запроса varchar(255), удалите 255, тогда должно быть хорошо

SELECT ChrgAmt, REPLACE(convert(varchar,ChrgAmt), '.', '') AS Result
FROM PaymentSummary

лучший я рекомендую nvarchar вместо varchar, поболеть

Это работает в "Асе":

select
  ChrgAmt
  , str_replace(convert(varchar(255),ChrgAmt), '.', null) as Result
from
  PaymentSummary
Другие вопросы по тегам