sql >> Databasteknik >  >> RDS >> PostgreSQL

Fix:"operatör finns inte:heltal || heltal” i PostgreSQL

Om du får "operatorn existerar inte:heltal || heltal" i PostgreSQL, beror det förmodligen på att du försöker sammanfoga två tal.

Om du verkligen vill sammanfoga två siffror är det enklaste sättet att lösa problemet att först casta minst ett av dem till en strängdatatyp.

Ett annat sätt att göra det är att använda CONCAT() funktion.

Exempel på fel

Här är ett exempel på kod som orsakar detta fel:

SELECT 123 || 456;

Resultat:

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.

Lösning 1

Här är ett snabbt sätt att lösa problemet:

SELECT CAST(123 AS varchar(3)) || 456;

Resultat:

123456

Även om det är sant att vi kunde ha kastat båda siffrorna till en sträng, är det inte nödvändigt. Så länge en av operanderna är en sträng, kommer rörsammansättningsoperatören att kunna sammanfoga dem.

Lösning 2

Ett annat sätt att göra det är att använda CONCAT() funktion för att göra sammanlänkningen:

SELECT CONCAT(123, 456);

Resultat:

123456

Den här funktionen fungerar på tal utan att behöva konvertera något av dem till en sträng. Funktionen gör detta automatiskt (den sammanfogar textrepresentationerna av dess argument som standard).


  1. 4 sätt att lista alla vyer i en SQL Server-databas

  2. Hur man tar bort ledande och efterföljande tecken i SQL Server

  3. Hur man kontrollerar MySQL-versionen

  4. Introduktion till SQL-kommandon