Als u de "operator krijgt, bestaat niet:integer || integer" in PostgreSQL, komt dit waarschijnlijk omdat u twee getallen probeert samen te voegen.
Als u echt twee getallen wilt samenvoegen, is de eenvoudigste manier om dit probleem op te lossen, door er eerst minstens één van naar een stringgegevenstype te casten.
Een andere manier om dit te doen is door de CONCAT()
functie.
Voorbeeld van fout
Hier is een voorbeeld van code die deze fout veroorzaakt:
SELECT 123 || 456;
Resultaat:
ERROR: operator does not exist: integer || integer LINE 1: SELECT 123 || 456; ^ HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
Oplossing 1
Hier is een snelle manier om dit probleem op te lossen:
SELECT CAST(123 AS varchar(3)) || 456;
Resultaat:
123456
Hoewel het waar is dat we beide getallen naar een string hadden kunnen casten, is dat niet nodig. Zolang een van de operanden een string is, kan de operator voor pijpaaneenschakeling ze samenvoegen.
Oplossing 2
Een andere manier om dit te doen is door de CONCAT()
functie om de aaneenschakeling te doen:
SELECT CONCAT(123, 456);
Resultaat:
123456
Deze functie werkt op getallen zonder dat u ze naar een tekenreeks hoeft te converteren. De functie doet dit automatisch (het voegt standaard de tekstrepresentaties van zijn argumenten samen).