Wygląda na to, że chcesz czegoś takiego
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>>
gdzie 999999999 to pewna wartość liczbowa, która jest na tyle duża, że zawsze będzie większa niż jakakolwiek inna prawidłowa wartość. Jeśli jest możliwe, że wszystkie trzy kolumny będą miały NULL lub 0 wartości, to prawdopodobnie chciałbyś dodać dodatkowe sprawdzenie, czy wynik tego least funkcja to 999999999, że zwracasz 0 lub NULL lub cokolwiek innego ma sens.
@X-Zero był na tyle miły, że stworzył działający przykład SQL Fiddle
tej konstrukcji. Zauważ, że jego przykład filtruje wiersze, w których wszystkie trzy kolumny mają albo NULL lub 0 wartości.