Meu banco está com o json entre couchetes e não consigo extrair o id [{"id":123,"teste":exemplo},{"id":456,"teste":outro}] o json_extract não tráz os dados. Como contorno isso?
Meu banco está com o json entre couchetes e não consigo extrair o id [{"id":123,"teste":exemplo},{"id":456,"teste":outro}] o json_extract não tráz os dados. Como contorno isso?
Se estou entendendo corretamente, você tem uma string que contém um array JSON, e você deseja extrair os valores dos IDs. No entanto, parece que você está enfrentando problemas com a função json_extract
e suspeita que isso pode estar relacionado ao fato de os dados estarem entre colchetes.
Aqui estão algumas abordagens que você pode tentar para contornar esse problema:
json_array_elements
Se a sua string contém um array JSON, você pode tentar usar a função json_array_elements
para expandir o array em linhas e, em seguida, extrair os IDs. Veja um exemplo:
SELECT value->>'id' AS id
FROM json_array_elements('[{"id":123,"teste":"exemplo"},{"id":456,"teste":"outro"}]') AS value;
Se a sua string sempre começa e termina com colchetes e contém um array JSON, você pode remover manualmente esses colchetes antes de usar a função json_extract
. Exemplo:
SELECT json_extract('[{"id":123,"teste":"exemplo"},{"id":456,"teste":"outro"}]'::json->0, 'id') AS id;
jsonb_array_elements_text
Se você estiver usando um tipo JSONB, pode tentar usar jsonb_array_elements_text
da seguinte forma:
SELECT value->>'id' AS id
FROM jsonb_array_elements_text('[{"id":123,"teste":"exemplo"},{"id":456,"teste":"outro"}]'::jsonb) AS value;
Lembre-se de adaptar essas consultas conforme necessário, dependendo de como você está obtendo seus dados e como estão estruturados. Essas são abordagens comuns para lidar com arrays JSON em consultas SQL.
Poxa, não deu certo, esses dados estão na coluna PRODUTO da tabela REGRA, eu quero pegar todos os valores dessa coluna para manter o vínculo com cada regra..