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

Hàm GREATEST () trong PostgreSQL

Trong PostgreSQL, GREATEST() hàm trả về giá trị lớn nhất (hoặc lớn nhất) từ danh sách bất kỳ số biểu thức nào.

GREATEST() chức năng không được bao gồm trong tiêu chuẩn SQL, nhưng nó là một phần mở rộng phổ biến mà nhiều RDBMS chính hỗ trợ.

Cú pháp

GREATEST(value [, ...])

Điều này có nghĩa là chúng ta có thể truyền một hoặc nhiều giá trị cho hàm.

Ví dụ

Dưới đây là một ví dụ đơn giản để chứng minh:

SELECT GREATEST( 3, 15, 7 );

Kết quả:

15

Chuỗi

Dưới đây là một ví dụ trong đó tất cả các đối số là chuỗi:

SELECT GREATEST( 'Bear', 'Zebra', 'Ant' );

Kết quả:

Zebra

Ngày

Dưới đây là so sánh các chuỗi ngày:

SELECT GREATEST(date '2027-01-01', date '2027-12-31');

Kết quả:

2027-12-31

Loại dữ liệu chung

Tất cả các biểu thức phải có thể chuyển đổi thành một kiểu dữ liệu chung. Kết quả sẽ sử dụng kiểu này.

Nếu không thể chuyển đổi các biểu thức thành một kiểu dữ liệu chung, thì sẽ xảy ra lỗi:

SELECT GREATEST( 3, 'Fifteen', 7 );

Kết quả:

ERROR:  invalid input syntax for type integer: "Fifteen"
LINE 1: SELECT GREATEST( 3, 'Fifteen', 7 );
                            ^

Giá trị rỗng

Giá trị rỗng bị bỏ qua trừ khi tất cả các biểu thức null . Nếu tất cả các biểu thức đều null , rồi đến null được trả lại:

\pset null '<null>'
SELECT 
    GREATEST( 3, null, 7 ),
    GREATEST( null, null, null );

Kết quả:

 greatest | greatest 
----------+----------
        7 | <null>

Theo mặc định, psql trả về chuỗi trống trên các giá trị null. Trong dòng đầu tiên trong ví dụ này, tôi đặt giá trị null để xuất ra <null> để chúng tôi thấy kết quả rỗng dễ dàng hơn.

Thiếu đối số

Đang gọi GREATEST() mà không có bất kỳ đối số nào dẫn đến lỗi:

SELECT GREATEST();

Kết quả:

ERROR:  syntax error at or near ")"
LINE 1: SELECT GREATEST();
                        ^

Tuy nhiên, chúng ta có thể chuyển một đối số mà không bị lỗi:

SELECT GREATEST( 1 );

Kết quả:

1

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đón ngày đầu tiên của tháng trong PostgreSQL

  2. Làm cách nào để chỉ sao chép các CHÈN chứ không phải XÓA / CẬP NHẬT trên Slony Slave Node?

  3. sql ĐẶT HÀNG BẰNG nhiều giá trị theo thứ tự cụ thể?

  4. Cách hoạt động của hàm Ln () trong PostgreSQL

  5. Cập nhật dấu thời gian khi hàng được cập nhật trong PostgreSQL