PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Khắc phục:“không tồn tại toán tử:integer || số nguyên ”trong PostgreSQL

Nếu bạn nhận được toán tử “ không tồn tại:số nguyên || số nguyên ”trong PostgreSQL, có thể là do bạn đang cố gắng nối hai số.

Nếu bạn thực sự muốn nối hai số, cách dễ nhất để khắc phục vấn đề này là truyền ít nhất một trong số chúng sang kiểu dữ liệu chuỗi.

Một cách khác để làm điều đó là sử dụng CONCAT() chức năng.

Ví dụ về Lỗi

Dưới đây là một ví dụ về mã gây ra lỗi này:

SELECT 123 || 456;

Kết quả:

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.

Giải pháp 1

Dưới đây là một cách nhanh chóng để khắc phục sự cố này:

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

Kết quả:

123456

Mặc dù đúng là chúng tôi có thể truyền cả hai số thành một chuỗi, nhưng điều đó là không cần thiết. Miễn là một trong các toán hạng là một chuỗi, toán tử nối ống sẽ có thể nối chúng.

Giải pháp 2

Một cách khác để làm điều đó là sử dụng CONCAT() chức năng để thực hiện nối:

SELECT CONCAT(123, 456);

Kết quả:

123456

Hàm này hoạt động trên các số mà không cần chuyển đổi bất kỳ số nào trong số chúng thành chuỗi. Hàm tự động thực hiện việc này (theo mặc định, nó nối các biểu diễn văn bản của các đối số của nó).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thêm số ngày trong datetime postgresql

  2. Hàm STRING_AGG () trong PostgreSQL

  3. Hướng dẫn về PGpool - Gợi ý &Quan sát:Phần ba

  4. trình tự thoát cho gạch nối (-) trong PostgreSQL là gì

  5. Cách thay đổi kiểu dữ liệu cột từ ký tự sang số trong PostgreSQL 8.4