Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Mô phỏng ORDER BY FIELD() của MySQL trong PostgreSQL?

PostgreSQL không có FIELD(), dùng CASE WHEN để mô phỏng.

Tạo bảng

CREATE TABLE PostgreOrderIdDemo (countryName VARCHAR(20));

Chèn dữ liệu

INSERT INTO PostgreOrderIdDemo VALUES('IND'),('US'),('UK');

Cú pháp PostgreSQL

SELECT * FROM yourTableName
ORDER BY CASE
    WHEN columnName='IND' THEN 1
    WHEN columnName='US' THEN 2
    WHEN columnName='UK' THEN 3
    ELSE 0 END, columnName;

Ví dụ

SELECT * FROM PostgreOrderIdDemo
ORDER BY CASE
    WHEN countryName='IND' THEN 1
    WHEN countryName='US' THEN 2
    WHEN countryName='UK' THEN 3
    ELSE 0 END, countryName;

Kết quả sắp xếp theo thứ tự IND, US, UK.