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

PostgreSQL bỏ qua dấu gạch ngang khi đặt hàng

Điều này là do da_DK.utf8 ngôn ngữ định nghĩa nó theo cách này. Các tiện ích nhận biết ngôn ngữ Linux, ví dụ:sort cũng sẽ hoạt động như thế này.

convert_to(name, 'latin1') của bạn sẽ bị hỏng nếu nó tìm thấy một ký tự không có trong bộ ký tự Latinh 1, ví dụ: , vì vậy đây không phải là một giải pháp tốt.

Bạn có thể sử dụng order by convert_to(name, 'SQL_ASCII') , sẽ bỏ qua sắp xếp được xác định theo ngôn ngữ và chỉ sử dụng các giá trị byte.

Chỉnh sửa hack xấu xí:

order by
  (
    ascii(name) between ascii('a') and ascii('z')
    or ascii(name) between ascii('A') and ascii('Z')
    or ascii(name)>127
  ),
  name;

Điều này sẽ sắp xếp đầu tiên bất kỳ thứ gì bắt đầu bằng ASCII không phải chữ cái. Điều này rất xấu, bởi vì việc sắp xếp xa hơn trong chuỗi sẽ rất kỳ lạ, nhưng nó có thể đủ tốt cho bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django không thể tải đồ đạc thử nghiệm, IntegrityError

  2. PostgreSQL - Không tìm thấy quan hệ nào.

  3. Elegant PostgreSQL Group của Ruby on Rails / ActiveRecord

  4. Không thể tham gia và chọn trong Phần tiếp theo - PG ::SyntaxError

  5. Hàm RPAD () trong PostgreSQL