【发布时间】:2019-11-21 16:24:14
【问题描述】:
我有一个带有 JSON 列的表。我想选择 JSON 属性作为列。属性名称将是未知的。所以我必须使用动态SQL。基于这个SO suggestion,我能够得到属性。
CREATE TABLE [Templates]
(
[ID] [INT] NOT NULL,
[Template] [NVARCHAR](MAX)
)
INSERT INTO Templates(ID,Template)
VALUES (1, '{"FirName":"foo"}'),
(2, '{"FirName":"joe","LastName":"dow"}'),
(3, '{"LastName":"smith","Address":"1234 Test Drive"}'),
(4, '{"City":"New York"}')
// SELECT Keys
SELECT DISTINCT(j.[key])
FROM Templates T
CROSS APPLY OPENJSON(T.Template) AS j
如何动态创建拟合语句/WITH 子句以选择属性作为列?如果属性不存在,那么它应该返回 null
【问题讨论】:
标签: json sql-server tsql