Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-解析不带列标题的JSON数组_Sql_Json_Tsql_Sql Server 2016 - Fatal编程技术网

SQL-解析不带列标题的JSON数组

SQL-解析不带列标题的JSON数组,sql,json,tsql,sql-server-2016,Sql,Json,Tsql,Sql Server 2016,我有以下json负载: "rows": [["202003290528", "/home", "/home", "(not set)", "/home", "desktop", "Charlotte NC", "1", "1", "1", "0.0", "1", "1", "0.0", "1"], ["202003291516", "/home", "/home", "(not set)", "/home", "mobile", "Chicago IL", "1", "1", "1", "0.0

我有以下json负载:

"rows": [["202003290528", "/home", "/home", "(not set)", "/home", "desktop", "Charlotte NC", "1", "1", "1", "0.0", "1", "1", "0.0", "1"], ["202003291516", "/home", "/home", "(not set)", "/home", "mobile", "Chicago IL", "1", "1", "1", "0.0", "1", "0", "0.0", "1"], ["202003291930", "/home", "/home", "(not set)", "/home", "mobile", "Boston MA-Manchester NH", "1", "1", "1", "0.0", "1", "0", "0.0", "1"], ["202003291942", "/home", "/home", "(not set)", "/home", "mobile", "Des Moines-Ames IA", "1", "1", "1", "0.0", "1", "0", "0.0", "1"]]
如何使用SQL Server 2016解析此数据以填充SQL表:

dateHourMinute  pagePath    landingPagePath secondPagePath  exitPagePath    deviceCategory  metro   sessions    pageviews   uniquePageviews timeOnPage  users   newUsers    sessionDuration bounces

您需要对显式模式使用
OPENJSON()
。只需在
WITH
子句中使用适当的列名:

声明:

DECLARE @json nvarchar(max) = N'{
   "rows":[
      [
         "202003290528",
         "/home",
         "/home",
         "(not set)",
         "/home",
         "desktop",
         "Charlotte NC",
         "1",
         "1",
         "1",
         "0.0",
         "1",
         "1",
         "0.0",
         "1"
      ],
      [
         "202003291516",
         "/home",
         "/home",
         "(not set)",
         "/home",
         "mobile",
         "Chicago IL",
         "1",
         "1",
         "1",
         "0.0",
         "1",
         "0",
         "0.0",
         "1"
      ],
      [
         "202003291930",
         "/home",
         "/home",
         "(not set)",
         "/home",
         "mobile",
         "Boston MA-Manchester NH",
         "1",
         "1",
         "1",
         "0.0",
         "1",
         "0",
         "0.0",
         "1"
      ],
      [
         "202003291942",
         "/home",
         "/home",
         "(not set)",
         "/home",
         "mobile",
         "Des Moines-Ames IA",
         "1",
         "1",
         "1",
         "0.0",
         "1",
         "0",
         "0.0",
         "1"
      ]
   ]
}'
SELECT *
FROM OPENJSON(@json, '$.rows') WITH (
   dateHourMinute varchar(100) '$[0]',
   pagePath varchar(100) '$[1]',
   landingPagePath varchar(100) '$[2]',
   secondPagePath varchar(100) '$[3]',
   exitPagePath varchar(100) '$[4]',
   deviceCategory varchar(100) '$[5]',
   metro varchar(100) '$[6]',
   sessions varchar(100) '$[7]',
   pageviews varchar(100) '$[8]',
   uniquePageviews varchar(100) '$[9]',
   timeOnPage varchar(100) '$[10]',
   users varchar(100) '$[11]',
   newUsers varchar(100) '$[12]',
   sessionDuration varchar(100) '$[13]',
   bounces varchar(100) '$[14]'
)
声明:

DECLARE @json nvarchar(max) = N'{
   "rows":[
      [
         "202003290528",
         "/home",
         "/home",
         "(not set)",
         "/home",
         "desktop",
         "Charlotte NC",
         "1",
         "1",
         "1",
         "0.0",
         "1",
         "1",
         "0.0",
         "1"
      ],
      [
         "202003291516",
         "/home",
         "/home",
         "(not set)",
         "/home",
         "mobile",
         "Chicago IL",
         "1",
         "1",
         "1",
         "0.0",
         "1",
         "0",
         "0.0",
         "1"
      ],
      [
         "202003291930",
         "/home",
         "/home",
         "(not set)",
         "/home",
         "mobile",
         "Boston MA-Manchester NH",
         "1",
         "1",
         "1",
         "0.0",
         "1",
         "0",
         "0.0",
         "1"
      ],
      [
         "202003291942",
         "/home",
         "/home",
         "(not set)",
         "/home",
         "mobile",
         "Des Moines-Ames IA",
         "1",
         "1",
         "1",
         "0.0",
         "1",
         "0",
         "0.0",
         "1"
      ]
   ]
}'
SELECT *
FROM OPENJSON(@json, '$.rows') WITH (
   dateHourMinute varchar(100) '$[0]',
   pagePath varchar(100) '$[1]',
   landingPagePath varchar(100) '$[2]',
   secondPagePath varchar(100) '$[3]',
   exitPagePath varchar(100) '$[4]',
   deviceCategory varchar(100) '$[5]',
   metro varchar(100) '$[6]',
   sessions varchar(100) '$[7]',
   pageviews varchar(100) '$[8]',
   uniquePageviews varchar(100) '$[9]',
   timeOnPage varchar(100) '$[10]',
   users varchar(100) '$[11]',
   newUsers varchar(100) '$[12]',
   sessionDuration varchar(100) '$[13]',
   bounces varchar(100) '$[14]'
)