如何构建 SQL 插入查询以允许我将空白插入数字字段?
How do I build a SQL insert query that allows me to insert a blank into a numeric field?
我将 Excel 工作簿中的一些值添加到数组中。最后,我遍历数组并构建一个 sql 插入查询(使用 Excel VBA),并将值存储到数组中。
我调试了我构建的 sql 查询字符串,它显示为:
INSERT INTO RAPTOR_BG.Project_Attributes (
P-Key,
Contract_Currency,
FX_Rate,
Rate_Discount,
Study_Award,
BLD,
Submitted_Date
)
VALUES (
'1111111|7-22-2020',
'USD',
'0.91',
'',
'5-29-2019',
'',
'7-22-2020'
);
Rate_Discount 和 BLD 都是数字,不接受 ' '。有没有办法让 sql 接受这个空白为空?我做了一些研究,发现有些人使用 case 语句取得了成功,但我看到的所有示例都使用了变量或答案 .[=14 中找到的类似内容 (@SomeName) =]
我尝试通过执行以下操作来调整我的代码以适应我所看到的示例,但它引发了一个错误,指出 CASE 规范中的至少一个结果表达式必须是除空常量。
*insert statement from before*
VALUES (
'1111111|7-22-2020',
'USD',
'0.91',
CASE WHEN '' is null then null end,
'5-29-2019',
'',
'7-22-2020'
);
我将成为 运行 我在数百个工作簿上的代码,其中一些值将是空白的,而另一些则不是,所以我不一定要硬编码 null 而不是 ' ' .有没有办法解决让数字字段接受空白作为空值的问题?
好的,我想通了。请在下面找到答案。
INSERT INTO RAPTOR_BG.Project_Attributes (
P-Key,
Contract_Currency,
FX_Rate,
Rate_Discount,
Study_Award,
BLD,
Submitted_Date
)
VALUES (
'1111111|7-22-2020',
'USD',
'0.91',
CASE WHEN '' is null then 0 end,
'5-29-2019',
CASE WHEN '' is null then 0 end,
'7-22-2020'
);
我将 Excel 工作簿中的一些值添加到数组中。最后,我遍历数组并构建一个 sql 插入查询(使用 Excel VBA),并将值存储到数组中。
我调试了我构建的 sql 查询字符串,它显示为:
INSERT INTO RAPTOR_BG.Project_Attributes (
P-Key,
Contract_Currency,
FX_Rate,
Rate_Discount,
Study_Award,
BLD,
Submitted_Date
)
VALUES (
'1111111|7-22-2020',
'USD',
'0.91',
'',
'5-29-2019',
'',
'7-22-2020'
);
Rate_Discount 和 BLD 都是数字,不接受 ' '。有没有办法让 sql 接受这个空白为空?我做了一些研究,发现有些人使用 case 语句取得了成功,但我看到的所有示例都使用了变量或答案 我尝试通过执行以下操作来调整我的代码以适应我所看到的示例,但它引发了一个错误,指出 CASE 规范中的至少一个结果表达式必须是除空常量。 我将成为 运行 我在数百个工作簿上的代码,其中一些值将是空白的,而另一些则不是,所以我不一定要硬编码 null 而不是 ' ' .有没有办法解决让数字字段接受空白作为空值的问题?*insert statement from before*
VALUES (
'1111111|7-22-2020',
'USD',
'0.91',
CASE WHEN '' is null then null end,
'5-29-2019',
'',
'7-22-2020'
);
好的,我想通了。请在下面找到答案。
INSERT INTO RAPTOR_BG.Project_Attributes (
P-Key,
Contract_Currency,
FX_Rate,
Rate_Discount,
Study_Award,
BLD,
Submitted_Date
)
VALUES (
'1111111|7-22-2020',
'USD',
'0.91',
CASE WHEN '' is null then 0 end,
'5-29-2019',
CASE WHEN '' is null then 0 end,
'7-22-2020'
);