where column = any (string_to_array(replace(delimSources,' ',''),',')) -- replace(source,old, new) => Leerzeichen entfernen -- string_to_array(source,separator) => generiert ein array aus den String die durch den Separator getrennt sind -- any => gleiche Bedingungsabfrage wie IN, entscheident ist, dass es auch ein array als Eingabe verarbeiten kann, während IN komma separierte Listen annimmt -- https://stackoverflow.com/questions/34627026/in-vs-any-operator-in-postgresql
Normalerweise würde man etwas schreiben wir : WHERE column IN (‘bingo’,’bongo’)
Aber eine Komma separierte Variable einer Funktion zu übergeben scheint nicht das Gleiche zu sein, wie diese direkt in die IN Bedingung reinzuschreiben. Stattdessen muss daher dieser String in ein array umgewandelt werden um dann die Abfrage mit any() durchzuführen.
In MSSQL gibt es scheinbar gleiche Probleme und zwei etablierte Herangehensweisen sind:
- Ein dynamisches SQL erstellen und mit exec() ausführen
- Eine zugehörige table valued function erstellen
Quelle: http://www.itdeveloperzone.com/2013/03/using-variable-in-in-clause-in-sql.html