SELECT (isnull(Road,'') + ', ' + isnull(Area,'') + ', ' + isnull(City,'') + ', ' + isnull(County,'') + ', '+ isnull(Postcode,'')) As Address
FROM Employees
WHERE ID = 1000
NULL values are not compatible with any other values. Because of the reason any values in the expression has NULL it is nullifying the result.
A value of NULL indicates that the value is unknown. A value of NULL is different from an empty or zero value. No two null values are equal. Comparisons between two null values, or between a NULL and any other value, return unknown because the value of each NULL is unknown.
you still wind up with a trailing comma - no need to add one to the last element that is concatenated, but if that can be NULL then you will get the comma that is appended to the penultimate element and so on ... Maybe a trailing comma is not a nuisance for you though ... I find it annoying to have to program around as I think of it as wasted CPU cycles!