My table table1 is like below
table1
id d1 d2 d3 d4 1 6 7 8 9 2 13 10 11 12 3 16 17 14 15 4 19 20 21 18
You can do this with a case expression:
case
SELECT d1, d2, d3, d4, least(d1, d2, d3, d4) as min_value, (CASE least(d1, d2, d3, d4) WHEN d1 THEN 'd1' WHEN d2 THEN 'd2' WHEN d3 THEN 'd3' WHEN d4 THEN 'd4' END) as min_column_name FROM table1;