Я получаю сообщение об ошибке использования функции float, как ее решить? - PullRequest
1 голос
/ 25 октября 2019

Я пытаюсь преобразовать то, что находится внутри скобок, в тип с плавающей точкой, но я продолжаю получать ту же ошибку.

Я уже пытался изменить скобки, чтобы обернуть все выражение в float перед преобразованиемно это все равно дает мне ту же ошибку. Пожалуйста, дайте мне знать, что я могу сделать, чтобы избежать этой ошибки.

SELECT     
    inter.IDIntervento, 'Intervento principale' as _IDInterventoTipo, 1 as _IDInterventoTipoN,
    inter.IDIntervento as _IDInterventoRif, inter.IDInterventoV, 
    IDCartella, IDCdc, IDCdc|| IDCartella as IDCdcIDCartella,
    ECO.TipoCardio,
    ECO.DataEsame,
    ECO.Operatore,
    ECO.TipoEco, 
    convert(float,replace(ECO.DiametroTelediastolicoVentricoloSinistro,',','.')) as VentricoloSinistro_DiametroTelediastolico,
    convert(float,replace(ECO.VolumeTelediastolicoVentricoloSinistro,',','.')) as VentricoloSinistro_VolumeTelediastolico,
    convert(float,replace(ECO.DiametroTelediastolico2VentricoloSinistro,',','.')) as VentricoloSinistro_DiametroTelediastolico2,
    convert(float,replace(ECO.VolumeTelediastolico2VentricoloSinistro,',','.')) as VentricoloSinistro_VolumeTelediastolico2,
    (SELECT cast(idinterventovalore as varchar(5))|| '='|| valore  
    FROM cch.pats_cch_interventi_valori val     

1 Ответ

0 голосов
/ 25 октября 2019

Функция convert преобразует строки из одной кодировки в другую.

Чтобы преобразовать строку в число с плавающей запятой, используйте приведение типа:

CAST (replace(ECO.DiametroTelediastolicoVentricoloSinistro,',','.')
      AS double precision) AS VentricoloSinistro_DiametroTelediastolico
...