如何在 SQL 服务器中将空字符串 (' ') 插入到十进制或数字中?

How to insert empty string (' ') to decimal or numeric in SQL Server?

有没有办法将空字符串 (' ') 插入 decimal 类型的列中?

这是示例:

create table #temp_table 
(
    id varchar(8) NULL,
    model varchar(20) NULL,
    Plandate date NULL,
    plan_qty decimal (18, 0) NULL,
    Remark varchar (50) NULL,
)

insert into #temp_table (id, model, Plandate, plan_qty, Remark)
values ('pn-01', 'model-01', '2017-04-01', '', 'Fresh And Manual')

我收到一个错误

Error converting data type varchar to numeric.

我的数据来自 Excel 文件并且有一些空白单元格。

我的查询将其读取为空字符串。

如果有办法,请帮忙

谢谢

您不能将空 字符串 插入数字字段。您可以插入 NULL:

insert into #temp_table (id, model, Plandate, plan_qty, Remark)
    values ('112325', '10TPB220MC', '2017-04-01', NULL, 'Fresh And Manual');

当然默认默认值是NULL,所以你也可以不写:

insert into #temp_table (id, model, Plandate, Remark)
    values ('112325', '10TPB220MC', '2017-04-01', 'Fresh And Manual');

根据您的评论,您只需要从 excel 插入一个 case 语句,我假设它使用的是开放式查询或批量插入。

Insert into #temp_table (id, model, Plandate, plan_qty, Remark)
Select
...
Case when someColumn = '' then null else someColumn end
...
From
--your excel file via openquery or whatever ...