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.