Artigos Dicas SQL

JSON_VALUE e como você pode pesquisar informações dentro de um JSON salvo em uma COLUNA no BD SQL

O JSON (JavaScript Object Notation) é um formato de troca de dados que se tornou muito popular nos últimos anos devido à sua simplicidade e flexibilidade. Ele é amplamente utilizado em aplicações web e mobile para transmitir informações entre o servidor e o cliente. O JSON é uma estrutura de dados bastante versátil, que permite representar informações complexas de forma simples e legível, o que o torna uma excelente escolha para armazenar e compartilhar dados.

Uma das grandes vantagens de salvar o JSON diretamente no banco de dados é a flexibilidade na estruturação dos dados. Ao contrário do modelo relacional tradicional, que exige uma estrutura rígida de tabelas e colunas, o JSON permite que as informações sejam armazenadas em uma única coluna, sem a necessidade de definir uma estrutura prévia. Isso é especialmente útil em aplicações em que as informações podem variar muito de acordo com o contexto, como em aplicações de gerenciamento de conteúdo, por exemplo. Além disso, ao armazenar o JSON diretamente no banco de dados, evitamos a necessidade de fazer múltiplas consultas a várias tabelas para obter todas as informações necessárias, o que pode melhorar significativamente o desempenho da aplicação.

Sendo então adotada como estratégia em muitas implementações é de se esperar que a MICROSOFT nos dessem uma opção ou função nativa para pesquisar conteudo dentro dessas colunas repletas de JSON.

Para pesquisar em um campo do tipo varchar(MAX) que contém um JSON, podemos utilizar a função JSON_VALUE para extrair os valores de uma chave específica no JSON.

Suponhamos que temos a tabela “Clientes” com os seguintes campos:

Id Nome DadosCliente
1 Ana {“idade”: 28, “email”: “ana@teste.com“, “telefone”: “(11) 99999-9999”}
2 João {“idade”: 35, “email”: “joao@teste.com“, “telefone”: “(21) 88888-8888”}

Para buscar todos os clientes que possuem email “ana@teste.com“, podemos fazer a seguinte query:

SELECT *
FROM Clientes
WHERE JSON_VALUE(DadosCliente, '$.email') = 'ana@teste.com'

A função JSON_VALUE recebe dois parâmetros: o primeiro é o campo que contém o JSON, e o segundo é a expressão que indica a chave que desejamos extrair. Neste caso, estamos buscando a chave “email” dentro do campo “DadosCliente”.

É importante ressaltar que, ao utilizar a função JSON_VALUE em um campo que contém um JSON, o desempenho da query pode ser afetado. Para evitar isso, é recomendável utilizar índices que cubram o campo que contém o JSON e, se possível, evitar a utilização de funções dentro do WHERE, fazendo a busca diretamente pelos valores da coluna.

Lucas Dalcolmo

About Author

Sou desenvolvedor de software a mais de 13 anos com experiência nacioanl e internacional. Já produzi softwares para grandes empresas no Brasil e também bancos em Portugal. Possuo as certificações microsoft AZ-900, DP-900, AI-900 e AZ-204 (azure developer associate). Sou fundador da Dallm Games Studio (@dallmgamesstudio) e fui mentor em vários eventos de desenvolvimento de jogos. Também fui mentor do NASA SPACE JAM 2024 na área de desenvolvimento de software.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Receba as últimas notícias por email

    Cadastre-se, receba nossas novidades em primeira mão por email, antes de todo mundo.

    Codeinsider @2025. Todos os direitos reservados.

    Desenvolvido por House Comunicação