Кажется, вы ищете coalesce()
:
from (select distinct [Name], Code, I as Id,
I + ':' + coalesce([Value], 'unknown') as label,
[Value]
from [test].[dbo].[emp]
) e
Я бы предложил написать запрос как:
Я не уверен, что вы действительно хотите, но я бы предложил написать запрос как с использованием apply
.
select distinct v.id, (v.id + ':' + coalesce(v.[Value], 'unknown')) as label,
coalesce(v.[Value], 'unknown') as value
from [test].[dbo].[emp] e cross apply
(values (e.product, 'product'), (e.model, 'model')
) v(value, id);
Это кажется намного проще и, вероятно, работает лучше.