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

Sắp xếp phân biệt chữ hoa chữ và số trong các bưu điện

PostgreSQL của tôi sắp xếp theo cách bạn muốn. Cách PostgreSQL so sánh các chuỗi được xác định bởi ngôn ngữ và đối chiếu. Khi bạn tạo cơ sở dữ liệu bằng createdb-l tùy chọn để đặt ngôn ngữ. Ngoài ra, bạn có thể kiểm tra cách nó được định cấu hình trong môi trường của bạn bằng cách sử dụng psql -l :

[[email protected]]$ psql -l
List of databases
 Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges
---------+----------+----------+------------+------------+-----------------------
 mn_test | postgres | UTF8     | pl_PL.UTF8 | pl_PL.UTF8 |

Như bạn thấy cơ sở dữ liệu của tôi sử dụng đối chiếu Ba Lan.

Nếu bạn đã tạo cơ sở dữ liệu bằng cách sử dụng đối chiếu khác thì bạn có thể sử dụng đối chiếu khác trong truy vấn giống như:

SELECT * FROM sort_test ORDER BY name COLLATE "C";
SELECT * FROM sort_test ORDER BY name COLLATE "default";
SELECT * FROM sort_test ORDER BY name COLLATE "pl_PL";

Bạn có thể liệt kê các ảnh ghép có sẵn bằng:

SELECT * FROM pg_collation;

ĐÃ CHỈNH SỬA:

Ồ, tôi đã nhớ rằng 'a11' phải đứng trước 'a2'.

Tôi không nghĩ rằng đối chiếu tiêu chuẩn có thể giải quyết việc sắp xếp chữ và số. Để phân loại như vậy, bạn sẽ phải chia chuỗi thành các phần giống như trong phản hồi Clodoaldo Neto. Một tùy chọn khác hữu ích nếu bạn thường xuyên phải sắp xếp theo cách này là tách trường tên thành hai cột. Bạn có thể tạo trình kích hoạt trên INSERT và UPDATE tách name thành name_1name_2 và sau đó:

SELECT name FROM sort_test ORDER BY name_1 COLLATE "en_EN", name_2;

(Tôi đã đổi đối chiếu từ tiếng Ba Lan sang tiếng Anh, bạn nên sử dụng đối chiếu bản địa của mình để sắp xếp các chữ cái như aącć, v.v.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vấn đề với liên kết json JOOQ

  2. Các giới hạn trên lược đồ PostgreSQL thay đổi bên trong các giao dịch?

  3. Postgres tách chuỗi với dấu ngoặc kép thành nhiều hàng?

  4. Làm thế nào để làm mới tất cả các chế độ xem cụ thể hóa trong Postgresql 9.3 cùng một lúc?

  5. định dạng sao chép nhiều cột postgresql Node.js