有没有办法将空字符串('')插入到
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')
我收到错误
将数据类型 varchar 转换为数字时出错。
我的数据来自 Excel 文件,有一些空白单元格。
我的查询将其读取为空字符串。
如果有办法,请帮忙。
谢谢
根据您的评论,您只需要从 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 ...
您无法将空的 string 插入数字字段。 您可以插入
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');
正如前面提到的,可以插入 NULL 而不是空字符串,因此还有一种选择是使用 NULLIF。对于你的情况:
insert into #temp_table (id, model, Plandate, plan_qty, Remark)
values ('pn-01', 'model-01', '2017-04-01', NULLIF(value_which_may_be_empty, ''), 'Fresh And Manual')