Array durchsuchen

Hi zusammen :smiley: ,

ich habe eine Datenbankabfrage, welche mir folgendes Resultat ausgibt:

Berufsgruppe | Name
INTEGER[]   | 
--------------------------------------
{1}                | Tom
{2}                | Mike
{1 , 2}           | Michael
{1 , 2}           | Karl
{3}                | Jonas

Die Berufsgruppe steht jeweils für einen bestimmten Beruf:

1 = Maler
2 = Lackierer
3 = Tischler

Kann ich nun eine Abfrage stricken, welche alle Arrays durchsucht und mir den Namen ausgibt?

Beipsielsweise ist Michael von Beruf Maler UND Lackierer.

Besteht die Möglichkeit einer Abfrage, die vom Sinn her so ungefähr aussieht? (ich weiß, dass es so nicht funktioniert, aber vom Sinn her möchte ich das so. Nur wie mache ich das? :confused: )

SELECT name
FROM abc
WHERE berufsgruppe = 1

Und als Ergebnis würde Tom, Michael und Karl rauskommen?

Vielen Dank schon einmal im Voraus!

LG,
Benni

Doku lesen.

test=*# select * from benni_k ;
   b   |  name
-------+---------
 {1}   | Tom
 {2}   | Mike
 {1,2} | Michael
 {1,2} | Karl
 {3}   | Jonas
(5 rows)

test=*# select * from benni_k where b @> array[1];
   b   |  name
-------+---------
 {1}   | Tom
 {1,2} | Michael
 {1,2} | Karl
(3 rows)

Das hat aber nichts mit PL/pgSQL zu tun. Das ist ganz “normales” SQL