У меня таблица выглядит вот так
Цель состоит в том, чтобы найти минимальное значение среди столбцов Limit
(Limit1, Limit2, Limit3 ... и т. Д.).
Для этого я использую функцию UNPIVOT
.
Но проблема в том, что некоторые значения являются пустыми строками. В результате значение min становится пустой строкой.
declare @TempTable2 table (ID int, limit1 varchar(50),limit2 varchar(50),limit3 varchar(50),limit4 varchar(50),limit5 varchar(50) )
insert into @TempTable2 values (1,'1000','1000','3000',NULL, NULL)
,(2,'2000','4000','3000','', NULL)
--select * from @TempTable2
Select ID,
min(Amount) as TheMin
from @TempTable2
unpivot (Amount for AmountCol in (Limit1,Limit2,Limit3,Limit4,Limit5)) as unpvt
group by ID
Так как я могу игнорировать строковые значения при использовании функции UNPIVOT
?
Я ожидаю, что мой результат будет таким:
ID TheMin
1 1000
2 2000
Я пытался использовать NULLIF
, но UNPIVOT
не принимает его.
Спасибо