если вам просто нужно знать, из какого он столбца, я думаю, вы можете просто включить col_nm в оператор select:
SELECT a.col1
,a.[all]
,a.col_nm
FROM df1 AS t UNPIVOT([all] FOR col_nm IN(col2, col3, col4)) AS a;
, если вам нужно знать индексный номер столбца - тогда это должно бытьлегко на основании вышеизложенного - возможно, сделайте проверку переключателя для имени столбца;или
, если это физическая или временная таблица, вы можете объединиться с sys.tables и sys.columns, чтобы найти индекс столбца (columnId) на основе имени столбца.