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

Nối một chuỗi và một số trong PostgreSQL

PostgreSQL cung cấp cho chúng ta những cách sau để nối chuỗi và số:

  • CONCAT() hàm, nối các đối số của nó.
  • Toán tử nối ống dẫn (|| ), nối các toán hạng của nó.

Ví dụ về mỗi bên dưới.

CONCAT() Chức năng

CONCAT() hàm nối các biểu diễn văn bản của các đối số của nó.

Ví dụ:

SELECT CONCAT('Player', 456);

Kết quả:

Player456

Chúng ta có thể bao gồm một khoảng trắng, bằng cách thêm một khoảng trắng vào chuỗi hiện có hoặc bằng cách nối bao gồm một đối số thứ ba chỉ bao gồm một khoảng trắng:

SELECT 
    CONCAT('Player ', 456) AS "Option 1",
    CONCAT('Player', ' ', 456) AS "Option 2";

Kết quả:

  Option 1  |  Option 2  
------------+------------
 Player 456 | Player 456

Nhà điều hành nối ống (|| )

Ví dụ này sử dụng toán tử nối (|| ):

SELECT 'Player ' || 456;

Kết quả:

Player 456

Trong trường hợp này, tôi đã thêm một khoảng trắng vào đối số đầu tiên.

Nối các số mà không có chuỗi

Nếu bạn cần nối hai số nhưng không có chuỗi, trước tiên bạn cần phải truyền ít nhất một trong các số thành một chuỗi. Nếu không sẽ xảy ra lỗi.

Ví dụ về lỗi:

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.

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chủ sở hữu cơ sở dữ liệu postgresql không thể truy cập cơ sở dữ liệu - Không tìm thấy quan hệ nào.

  2. Rails 3.1:Truy vấn Postgres cho các bản ghi trong một phạm vi thời gian

  3. Postgres CHỌN nơi ĐÂU là UUID hoặc chuỗi

  4. Tại sao chỉ một siêu người dùng mới có thể TẠO MỞ RỘNG hstore mà không phải trên Heroku?

  5. Sự khác biệt giữa pg_table_size, pg_relation_size &pg_total_relation_size là gì? (PostgreSQL)