SQL 服务器 JSON 将行转列

SQL Server JSON Transpose rows to columns

DECLARE @json NVARCHAR(MAX)

SET @json='{"name":"John","surname":"Doe","age":45,"skills":["SQL","C#","MVC"]}';

SELECT *
FROM OPENJSON(@json);

这给了你 键、值和类型作为列。

我想将名字、姓氏和年龄列为列。 该行是 John, Doe, 45.

如何翻转或调换列和行? 我尝试过 pivot 但无法正常工作。

您将使用 openjson()with 子句:

select * 
from openjson(@json) with (
    name nvarchar(max), 
    surname nvarchar(max), 
    age int
);

Demo on DB Fiddle:

name | surname | age
:--- | :------ | --:
John | Doe     |  45