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

Tại sao null || null trả về giá trị null nhưng concat (null, null) trả về một chuỗi rỗng trong postgres?

trong hàm concat ():

text concat(str "any",...)  Concatenate all arguments. NULL arguments are ignored.

Lưu ý:Đối số NULL bị bỏ qua.

Hãy tưởng tượng điều này:

Các đối số đầu vào concat() là động lực học.

Vì vậy, khi chúng ta viết:concat('a',null,null,null,null) => chúng tôi đã viết:concat('a')

(Trái ngược với || toán tử NULL đã phá hủy mọi thứ)

trong || toán tử:

Vì vậy, NULL||NULL có cú pháp sai

Nhưng tại sao lại không đưa ra Error? Bởi vì trong thao tác concat, nếu chúng ta không từ chối NULL (Giống như hàm concat), chúng sẽ lấn át mọi thứ

SELECT NULL ||'aaa'||'bbb'||'ccc'||'ddd'

đầu ra:

NULL

thông tin khác :




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hai câu hỏi để định dạng dấu thời gian và số bằng postgresql

  2. không hiểu json_agg trong ngữ cảnh này

  3. sqlalchemy.exc.NoSuchModuleError:Không thể tải plugin:sqlalchemy.dialects:postgres

  4. xuất bảng sang csv trên postgres

  5. Làm thế nào để ánh xạ thuộc tính số nguyên của một mô hình thành một chuỗi?