在这种情况下,我所做的只是使用一些字符串替换将其转换为 json 并像打开表格一样打开 json。可能不适合所有用例,但运行起来非常简单,并且可以处理字符串和文件。对于文件你只需要看你的换行符,我发现它大多是“Char(13)+Char(10)”
declare @myCSV nvarchar(MAX)= N'"Id";"Duration";"PosX";"PosY"
"•P001";223;-30;35
"•P002";248;-28;35
"•P003";235;-26;35'
--CSV to JSON
--convert to json by replacing some stuff
declare @myJson nvarchar(MAX)= '[['+ replace(@myCSV, Char(13)+Char(10), '],[' ) +']]'
set @myJson = replace(@myJson, ';',',') -- Optional: ensure coma delimiters for json if the current delimiter differs
-- set @myJson = replace(@myJson, ',,',',null,') -- Optional: empty in between
-- set @myJson = replace(@myJson, ',]',',null]') -- Optional: empty before linebreak
SELECT
ROW_NUMBER() OVER (ORDER BY (SELECT 0))-1 AS LineNumber, *
FROM OPENJSON( @myJson )
with (
col0 varchar(255) '$[0]'
,col1 varchar(255) '$[1]'
,col2 varchar(255) '$[2]'
,col3 varchar(255) '$[3]'
,col4 varchar(255) '$[4]'
,col5 varchar(255) '$[5]'
,col6 varchar(255) '$[6]'
,col7 varchar(255) '$[7]'
,col8 varchar(255) '$[8]'
,col9 varchar(255) '$[9]'
--any name column count is possible
) csv
order by (SELECT 0) OFFSET 1 ROWS --hide header row