sql >> Database >  >> RDS >> PostgreSQL

Postgres SQL om arraytekst [] in specifiek element op te vragen

De ondersteuning van PostgreSQL voor arrays is niet bijzonder goed. Je kunt unnest een 1-dimensionale array is eenvoudig genoeg, maar een n-dimensionale array is volledig afgeplat, in plaats van alleen de eerste dimensie. Toch kun je deze aanpak gebruiken om de gewenste set records te vinden, maar het is nogal lelijk:

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';

U kunt ook deze functie schrijven om een ​​2-dimensionale array te reduceren tot records van 1-dimensionale arrays en dan kun je in principe alle SQL-query's in je vraag gebruiken.




  1. Constanten in Oracle SQL-query

  2. substr werkt niet goed met utf8

  3. Is de PostgreSQL-volgorde volledig gegarandeerd als wordt gesorteerd op een niet-uniek kenmerk?

  4. Hoe op te slaan, het totaalbedrag van de bestelling te verwerken in een schema voor bestellingen, bestellingenDetails?