Tôi có một loạt các tác vụ trong cơ sở dữ liệu MySQL và một trong các trường là "ngày hết hạn". Không phải mọi công việc đều phải có ngày hết hạn.Có thể sử dụng SQL để sắp xếp theo ngày nhưng đặt ngày rỗng ở mặt sau của tập kết quả?
Tôi muốn sử dụng SQL để sắp xếp các tác vụ theo ngày hạn chót, nhưng đặt những ngày không có hạn chót ở mặt sau của tập kết quả. Vì nó là bây giờ, ngày null hiển thị đầu tiên, sau đó phần còn lại được sắp xếp theo ngày hạn chót sớm nhất mới nhất.
Bất kỳ ý tưởng nào về cách thực hiện điều này bằng SQL một mình? (Tôi có thể làm điều đó với PHP nếu cần, nhưng một giải pháp chỉ SQL sẽ là tuyệt vời.)
Cảm ơn!
+1. Đây là một giải pháp tiêu chuẩn nhỏ gọn và thanh lịch khác (có sẵn từ [SQL: 2003 extension T611] (http://en.wikipedia.org/wiki/Order_by), mặc dù không phải tất cả các nhà cung cấp đều triển khai chức năng này): http://stackoverflow.com/ a) 12767777/814702. – informatik01
@ informatik01, mẹo hay, nhưng câu hỏi này được gắn thẻ 'mysql' và MySQL không hỗ trợ cú pháp đó. –
@BillKarwin Vâng, buồn. Chỉ kiểm tra điều này trên PostgreSQL 9.1, nơi nó hoạt động tốt. Dù sao, hãy để thông tin này được ở đây chỉ vì lợi ích của sự hoàn chỉnh. P.S. Chỉ cần nhận thấy rằng khi sử dụng 'ORDER BY' MySQL và PostgreSQL hành xử khác nhau: khi đặt hàng * tăng dần * MySQL đặt giá trị NULL ** đầu tiên **, trong khi PostgreSQL đặt giá trị NULL ** cuối **. Vâng, công cụ dành riêng cho nhà cung cấp ... – informatik01