如果您有一个简单的表格,例如:
Id Name Age
1 Saeed 32
2 John 28
3 David 34
然后你可以For XML
在 SQL Server 中创建一个 JSON,就像:
select '{ name : "' + Name + '", age : ' + age + ' }'
from People
where Id = 1
for xml path('')
这很容易,因为列是事先已知的。但是,我坚持从 EAV 表创建 JSON。例如,如果表是:
Id EntityId Key Value
1 1 Name Saeed
2 1 Age 32
3 1 Gender Male
4 1 Key1 Value1
5 1 Key2 Value2
如何创建此 JSON?
{ Name: "Saeed", Age: 32, Gender: "Male", Key1: "Value1", Key2: "Value2" }
从这个查询:
select *
from PeopleEav
where EntityId = 1
请注意,键的数量是可变的(它是一个 EAV 表)。