2017-09-29 4 views
1

Google検索をダウンロードすることができます。それらはいくつかのJSONファイルの形式で提供されます。私は列にSQL(OPENJSON)を使用したJSONの解析

DECLARE @json as nvarchar(max) 

SET @json = N'{"event":[{"query":{"id":[{"timestamp_usec":"1329003091748889"}],"query_text":"download google searches"}}]}' 

SELECT * FROM OPENJSON(@json, N'$.event') 
WITH ( 
     [TimeStamp] nvarchar(max) N'$.query.timestamp_usec' , 
     [QueryText] nvarchar(max) N'$.query.query_text' 
) 

クエリテキストが結果を返すSQL関数OPENJSONと[タイムスタンプ]と[クエリテキスト]をそれらを解析しようとしているが、タイムスタンプは、単にNULL読み込みます。私は間違って何をしていますか?

答えて

6

コードに小さな欠陥があります。

サンプルJSON

{ 
    "event": [{ 
     "query": { 
      "id": [{ 
       "timestamp_usec": "1506676658" 
      }], 
      "query_text": "download google searches" 
     } 
    }] 
} 

あなたはとして照会するための小さな変更を行う必要があることからデータを取得するためになるようtimestamp_usecは、ID配列内にあるサンプルJSONを取る場合下に示された。

DECLARE @json as nvarchar(max) 

SET @json = N'{"event":[{"query":{"id":[{"timestamp_usec":"1506676658"}],"query_text":"download google searches"}}]}' 

SELECT * FROM OPENJSON(@json, N'$.event') 
WITH ( 
     [TimeStamp] nvarchar(max) N'$.query.id[0].timestamp_usec' , 
     [QueryText] nvarchar(max) N'$.query.query_text' 
) 
関連する問題