PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Postgres SQL per interrogare il testo dell'array[] in un elemento specifico

Il supporto di PostgreSQL per gli array non è particolarmente buono. Puoi unnest un array unidimensionale abbastanza facile, ma un array n-dimensionale è completamente appiattito, piuttosto che solo la prima dimensione. Tuttavia, puoi utilizzare questo approccio per trovare il set di record desiderato, ma è piuttosto brutto:

SELECT test.*, pg_column_size(test.data) AS column_size
FROM test
JOIN (SELECT id, unnest(data) AS strings FROM test) AS id_strings USING (id)
WHERE id_strings.strings = 'Wazaa';

In alternativa, scrivi questa funzione per ridurre un array bidimensionale in record di array unidimensionali e quindi puoi praticamente utilizzare tutte le query SQL nella tua domanda.