PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Поправка:„операторът не съществува:цяло число || цяло число” в PostgreSQL

Ако получите „операторът не съществува:цяло число || integer” грешка в PostgreSQL, вероятно е защото се опитвате да свържете две числа.

Ако наистина искате да свържете две числа, най-лесният начин да преодолеете този проблем е първо да прехвърлите поне едно от тях към низов тип данни.

Друг начин да го направите е да използвате CONCAT() функция.

Пример за грешка

Ето пример за код, който причинява тази грешка:

SELECT 123 || 456;

Резултат:

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.

Решение 1

Ето един бърз начин за преодоляване на този проблем:

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

Резултат:

123456

Въпреки че е вярно, че бихме могли да прехвърлим и двете числа към низ, това не е необходимо. Докато един от операндите е низ, операторът за конкатенация ще може да ги конкатенира.

Решение 2

Друг начин да го направите е да използвате CONCAT() функция за извършване на конкатенацията:

SELECT CONCAT(123, 456);

Резултат:

123456

Тази функция работи върху числа, без да е необходимо да преобразувате някое от тях в низ. Функцията прави това автоматично (по подразбиране обединява текстовите представяния на своите аргументи).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Импортиране на .csv с колона за време (dd.mm.yyyy hh.mm.ss) с помощта на psql \copy

  2. Как pg_sleep_until() работи в PostgreSQL

  3. Инсталиране на pg gem; ГРЕШКА:Неуспешно изграждане на собствено разширение за gem

  4. Generate_series в Postgres от начална и крайна дата в таблица

  5. Можете ли да създадете индекс в дефиницията CREATE TABLE?