【发布时间】:2021-07-29 01:25:35
【问题描述】:
这里是示例数据
-- 创建表架构的脚本
Create table myTable1(
PREMIUM varchar(50))
-- 创建所需数据的脚本
Insert into myTable1
values('25.90')
,('36.98')
,('67.89')
,('')
,('')
如何将 varchar 转换为十进制?我尝试了以下方法,但将 varchar 转换为数字时出错
--script to create table where premium field is converted to decimal
select cast(premium as decimal(12,2)) as prem
into myTable2
from myTable1
【问题讨论】:
-
您不能将''(空白)转换为十进制。您可以检查其是否为空白然后转换。或者不要在表中使用空格使用 NULLS。
-
与您的问题无关,但为什么要插入空白行
('')?如果您需要空值,请使用null而不是 '' -
decimal的值是''的意思? 1? 0?无穷?还有什么?''不是有效数字,因为您收到的错误会告诉您。 真正的问题是,你为什么首先将数值存储为varchar?
标签: sql-server