Obtendo JSON do SQL
Você sabia que pode obter dados JSON diretamente das suas tabelas SQL?
Vou apresentar duas funções SQL úteis que são usadas para recuperar dados JSON de consultas SQL - JSON_ARRAY e JSON_OBJECT.
Você pode usar essas funções na instrução SELECT com outros tipos de itens select, e elas podem ser especificadas em outros locais onde uma função SQL pode ser usada, como em uma cláusula WHERE
A função JSON_ARRAY aceita uma lista separada por vírgula de expressões e retorna um array JSON com esses valores.
SELECT TOP 3Name,
JSON_ARRAY(%ID,%TABLENAME,UCASE(Name),Age,Home_State) "JSON data"
FROM Sample.PersonSELECT TOP 3Name,
JSON_ARRAY(%ID,%TABLENAME,UCASE(Name),Age,Home_State ABSENT ONNULL
) "JSON data"
FROM Sample.Person.png)
Para obter essas propriedades de valores nulos, use "NULL ON NULL" em vez disso (e, como isso é o padrão, você pode só não o adicionar como no primeiro exemplo).
Imagem obtendo todos os telefones de pacientes/clientes em um array JSON sem construi-lo:
SELECT JSON_ARRAY(HomePhone,WorkPhone,Mobile) "JSON data"FROM Test.Phones["055-8263371","052-4957286","054-4951066"]A função JSON_OBJECT aceita uma lista separada por vírgulas de pares de chave:valor e retorna um objeto JSON com esses valores.
Você pode especificar qualquer string entre aspas simples como um nome de chave, mas observe que isso não impõe nenhuma convenção de nomenclatura ou verificação de exclusividade para nomes de chaves.
Para o valor, você pode especificar um nome de coluna ou outra expressão. Além disso, observe que ele não aceita a sintaxe de asterisco (*) como uma forma de especificar todos os campos de uma tabela.
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)
Para omitir as propriedades de valores nulos, basta adicionar "ABSENT ON NULL" à função:
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)
Para obter essas propriedades de valores nulos, use "NULL ON NULL" em vez disso (e, como isso é o padrão, você pode só não o adicionar).