通过SQL语句直接获取JSON格式数据
这里介绍三个SQL函数 JSON_ARRAY 、 JSON_OBJECT和JSON_ARRAYAGG,可以直接通过SQL语句返回JSON格式数据
1. JSON_ARRAY 函数通过逗号(,)分割的多个表达式,返回JSON array格式的数据
SELECT TOP 3Name,
JSON_ARRAY(%ID,%TABLENAME,UCASE(Name),Age,Home_State) "JSON data"
FROM Sample.Person也可以忽略空值(null) ,添加“ABSENT ON NULL”
SELECT TOP 3Name,
JSON_ARRAY(%ID,%TABLENAME,UCASE(Name),Age,Home_State ABSENT ONNULL) "JSON data"
FROM Sample.Person获取到的返回结果
.png)
如果想显示空值(null),使用"NULL ON NULL",如果没有特意标明,则该设置为默认值。
下面语句获取客户所有电话号码,并以JSON array格式返回:
SELECT JSON_ARRAY(HomePhone,WorkPhone,Mobile) "JSON data"FROM Test.Phones["055-8263371","052-4957286","054-4951066"]
2. JSON_OBJECT函数通过逗号(,)分割的多个键值对(key:value) ,返回JSON 对象的数据
SELECT TOP 3 JSON_OBJECT('title':'Person from’,'country’:UCASE(Home_State),'table':%TABLENAME,'name':Name,'id':%ID,'age':Age) "JSON data"
FROM Sample.Person.png)
忽略空值,则添加“ABSENT ON NULL”
SELECT TOP 3 JSON_OBJECT('title':'Person from’,'country’:UCASE(Home_State),'table':%TABLENAME,'name':Name,'id':%ID,'age':Age ABSENT ONNULL) "JSON data"
FROM Sample.Person.png)
同样的如果要显示空值,则添加“NULL ON NULL”,该设置为默认设置。
3. JSON_ARRAYAGG 函数将多个JSON_OBJECT汇聚到一个JSON array中
select JSON_ARRAYAGG(JSON_OBJECT('Id':Id,'Name':Name,'phoneNumber':Phone,'State':state)) AsJSONfrom Sample.Person.png)