Sql 将带有%的值存储到数据类型decimal(28,9)的列中

Sql 将带有%的值存储到数据类型decimal(28,9)的列中,sql,Sql,我使用以下代码对文本文件中的值进行子串,并将其存储在表中: CASE WHEN ISNUMERIC(SUBSTRING(Record,82,11))=1 THEN (LTRIM(RTRIM(CAST(REPLACE(SUBSTRING (Record,82,11),',','')AS DECIMAL(28,14))))) ELSE NULL END 我面临的问题是,当子字符串包含像“0.098467%”这样的值时,表中的null值会更新。有人能帮我解

我使用以下代码对文本文件中的值进行子串,并将其存储在表中:

CASE 
    WHEN ISNUMERIC(SUBSTRING(Record,82,11))=1 
        THEN (LTRIM(RTRIM(CAST(REPLACE(SUBSTRING (Record,82,11),',','')AS DECIMAL(28,14)))))
        ELSE NULL
END

我面临的问题是,当子字符串包含像“0.098467%”这样的值时,表中的null值会更新。有人能帮我解决这个问题吗。

0.098467%您想对这些字符串做什么?可以在我的else条件中添加一些东西来存储这些数据吗?将其存储在Varchar中您必须在通过isnumeric和cast之前替换%字符。就像你已经在用逗号一样。