I'd suggest they you redesign you tables, but here are two queries that work. I suspect that QUERY 2 would perform better, but you should test on your data to verify:-- SET UPDECLARE @ss1_uppmatvardelista TABLE([value] decimal(14,4), description varchar(50))DECLARE @ss1_oil TABLE (id int, [value] decimal(14,4))INSERT @ss1_uppmatvardelistaSELECT 0, 'invalid' UNION ALLSELECT 1, 'text1' UNION ALLSELECT 2, 'text2' UNION ALLSELECT 3, 'text3' UNION ALLSELECT NULL, 'text missing' INSERT @ss1_oilSELECT 1, 1 UNION ALLSELECT 2, 3 UNION ALLSELECT 3, NULL--QUERY 1SELECT o.id, COALESCE(u.[description], (SELECT TOP 1 description FROM @ss1_uppmatvardelista WHERE [value] IS NULL)) AS descriptionFROM @ss1_oil oLEFT OUTER JOIN @ss1_uppmatvardelista u ON o.[value] = u.[value]--QUERY 2SELECT o.id, u.[description]FROM @ss1_oil oLEFT OUTER JOIN @ss1_uppmatvardelista u ON COALESCE(o.[value], -1) = COALESCE(u.[value], -1)
Cheers,-Ryan