Замена не работает в 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
Проблема вашего запроса 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