Tôi đang cố gắng tìm số thấp nhất trong hai cột của một hàng trong cùng một bảng, với báo trước rằng một trong các cột có thể là null trong một hàng cụ thể. Nếu một trong các cột là null, tôi muốn giá trị trong cột khác được trả về cho hàng đó, vì đó là cột không null thấp nhất trong trường hợp này. Nếu tôi sử dụng hàm minimum() trong MySQL 5.1:Làm cách nào để tìm ít cột không rỗng nhất trong một hàng cụ thể trong SQL?
select least(1,null)
Điều này trả về null, không phải là điều tôi muốn. Tôi cần truy vấn trả về 1 trong trường hợp này.
tôi đã có thể để có được những kết quả tôi muốn nói chung với truy vấn này:
select least(coalesce(col1, col2)) , coalesce(col2,col1))
Chừng nào col1 và col2 đều không null mỗi kết thành một khối tuyên bố sẽ trả về một số, và ít nhất () xử lý việc tìm kiếm thấp nhất.
Có cách nào đơn giản/nhanh hơn để thực hiện việc này không? Tôi đang sử dụng MySQL trong trường hợp này nhưng các giải pháp chung được hoan nghênh.
nhanh hơn? Bạn đã xác định nó là chậm? –
Chưa đánh giá nó là chậm nhất thiết, nhưng nó gọi 3 chức năng thay vì có thể một. Tôi đang sử dụng nó theo thứ tự theo mệnh đề của truy vấn tôi cần càng nhanh càng tốt. –