sql - 使用 BULK INSERT 插入空格而不是 NULL
问题描述
我正在使用 BULK INSERT 将多个寄存器插入到已经有数据的数据库中。我想知道是否有任何方法可以插入空格而不是 NULL,因此插入的数据在视觉上与之前的数据一致。这是我正在使用的脚本。
BULK INSERT Documentos
FROM '\\Cate-des-tn-032\2015\InsertAWeb_07-05-2019.csv'
WITH (
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
UPDATE Documentos
SET FechaCargaLote = CONVERT(VARCHAR(50), GETDATE(), 120)
WHERE FechaCarga LIKE '%2015%'
解决方案
这是使用临时表的场景。首先将所有数据加载为 VarChar()。然后根据需要插入到您的实际表中并进行转换。
设置表:
Create Table #staging_tbl
(
id VarChar(5),
dt VarChar(15)
)
Create Table #actual_tbl
(
id Int,
dt VarChar(10)
)
示例文件 [test.txt]
1;2019-05-12
1;2019-05-11
1;2019-05-10
1;
1;2019-05-08
2;2019-04-19
批量插入
BULK INSERT #staging_tbl
FROM 'c:\Downloads\test.txt'
WITH
(
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
将数据从临时表移动到实际表:将 NULL 转换为“空白”
Insert Into #actual_tbl
SELECT
id,
Case When dt Is Null Then '' Else dt End As d
FROM #staging_tbl
查询实际表
Select * From #actual_tbl
结果:
id dt
1 2019-05-12
1 2019-05-11
1 2019-05-10
1
1 2019-05-08
2 2019-04-19
推荐阅读
- azure - 如何处理数据块中具有长路径的 blob 存储中的许多文件?
- mysql - 包含组的 Max 和 Mins 的整行
- matplotlib - 在 dask(并行)中运行时,一些 Matplotlib 图是空白/不完整的?
- ios - 为什么 NWPathMonitor 状态总是满足?
- python - 使用 python-docx-template (docxtpl) 时遍历列表(或 dict)
- c# - 多个 Winforms 项目中的异步等待
- python - 我无法弄清楚查看此数据框特定实例的语法
- r - 获取数据框中重复值的行索引
- seaborn - 在 seaborn 中绘制配对数据,类似于 R 中的 ggpaired
- r - 动态创建单位标签(K,Mn,Bn,Tn)+调整双轴ggplot2图的轴限制?