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