Có vẻ như bạn muốn một cái gì đó giống như
SELECT least( (case when col1 is null or col1 = 0 then 999999999 else col1 end),
(case when col2 is null or col2 = 0 then 999999999 else col2 end),
(case when col3 is null or col3 = 0 then 999999999 else col3 end) )
FROM <<table name>>
trong đó 999999999 là một số giá trị số đủ lớn để nó luôn lớn hơn bất kỳ giá trị hợp lệ nào khác. Nếu có thể cả ba cột sẽ có NULL
hoặc 0 giá trị, thì bạn có thể muốn thêm một kiểm tra bổ sung nếu kết quả của least
đó hàm là 999999999 mà bạn trả về 0 hoặc NULL
hoặc bất cứ điều gì khác có ý nghĩa.
@ X-Zero đủ tử tế để tập hợp một ví dụ về SQL Fiddle
đang hoạt động của cấu trúc này. Lưu ý rằng ví dụ của anh ấy đang lọc ra các hàng mà cả ba cột đều có NULL
hoặc 0 giá trị.