数据库脚本读取CSV文件,该如何解决
数据库脚本读取CSV文件
CSV 文件如下,我需要的是前面5行的column2, 以及最后第六行的column4, 如何用数据库脚本实现呢?
column1,column2
column1,column2
column1,column2
column1,column2
column1,column2
column1,column2, column3,column4
column1,column2, column3,column4
------解决思路----------------------
另外,你这个需求有点不一样,可以这么实现:
CSV 文件如下,我需要的是前面5行的column2, 以及最后第六行的column4, 如何用数据库脚本实现呢?
column1,column2
column1,column2
column1,column2
column1,column2
column1,column2
column1,column2, column3,column4
column1,column2, column3,column4
------解决思路----------------------
另外,你这个需求有点不一样,可以这么实现:
--6.先查看要导入的数据
select top 5 column2
from
openrowset(bulk 'c:\wc.csv', --要读取的文件路径和名称
formatfile='c:\wc.fmt', --格式化文件的路径和名称
firstrow = 2, --要载入的第一行,由于第一行是标题,所以从2开始
--lastrow = 1000, --要载入的最后一行,此值必须大于firstrow
maxerrors = 10, --在加载失败之前加载操作中最大的错误数
--errorfile ='c:\wc_error1.txt', --存放错误的文件
rows_per_batch = 10000 --每个批处理导入的行数
) as t
union all
select column4
from
(
select *,row_number() over(order by getdate()) rn
from
openrowset(bulk 'c:\wc.csv', --要读取的文件路径和名称
formatfile='c:\wc.fmt', --格式化文件的路径和名称
firstrow = 2, --要载入的第一行,由于第一行是标题,所以从2开始
--lastrow = 1000, --要载入的最后一行,此值必须大于firstrow
maxerrors = 10, --在加载失败之前加载操作中最大的错误数
--errorfile ='c:\wc_error1.txt', --存放错误的文件
rows_per_batch = 10000 --每个批处理导入的行数
) as t
)t
where rn = 6