SQL Server OPENJSON选择子对象
这是我的密码:SQL Server OPENJSON选择子对象,sql,json,sql-server,Sql,Json,Sql Server,这是我的密码: DECLARE @Orders VARCHAR(MAX) select @Orders = BulkColumn FROM OPENROWSET(BULK'C:\temp\amazonjson.json.txt', SINGLE_BLOB) JSON; SELECT * FROM OPENJSON(@Orders,'$.orders') WITH( orderId bigint '$.orderId', orderNumber nvarchar(50) '$.orderNum
DECLARE @Orders VARCHAR(MAX)
select @Orders = BulkColumn FROM OPENROWSET(BULK'C:\temp\amazonjson.json.txt', SINGLE_BLOB) JSON;
SELECT *
FROM OPENJSON(@Orders,'$.orders')
WITH(
orderId bigint '$.orderId',
orderNumber nvarchar(50) '$.orderNumber',
orderKey nvarchar(50) '$.orderKey',
orderDate nvarchar(50) '$.orderDate',
paymentDate nvarchar(50) '$.paymentDate',
shipByDate nvarchar(50) '$.shipByDate',
orderStatus nvarchar(50),
customerId nvarchar(50),
customerUsername nvarchar(50),
customerEmail nvarchar(50),
orderTotal nvarchar(50),
amountPaid nvarchar(50),
taxAmount nvarchar(50),
shippingAmount nvarchar(50),
customerNotes nvarchar(50),
internalNotes nvarchar(50),
gift nvarchar(50),
giftMessage nvarchar(50),
paymentMethod nvarchar(50),
requestedShippingService nvarchar(50),
carrierCode nvarchar(50),
serviceCode nvarchar(50),
packageCode nvarchar(50),
confirmation nvarchar(50),
shipDate nvarchar(50),
holdUntilDate nvarchar(50),
billTo nvarchar(max) '$.billTo',
items nvarchar(max)
)
问题是最后两列--billTo是一个对象--{“name”:“bob smith”,“address”:“1234 main”}--
而items是一个数组。我试图简单地将列显示为json字符串,以便稍后对其进行分析。为了维护json字符串,请使用
作为json
而不是json路径:
DECLARE @Orders VARCHAR(MAX)
select @Orders = BulkColumn FROM OPENROWSET(BULK'C:\temp\amazonjson.json.txt', SINGLE_BLOB) JSON;
SELECT *
FROM OPENJSON(@Orders,'$.orders')
WITH(
orderId bigint '$.orderId',
orderNumber nvarchar(50) '$.orderNumber',
orderKey nvarchar(50) '$.orderKey',
orderDate nvarchar(50) '$.orderDate',
paymentDate nvarchar(50) '$.paymentDate',
shipByDate nvarchar(50) '$.shipByDate',
...
billTo nvarchar(max) AS JSON,
items nvarchar(max) AS JSON
就这样。非常感谢。