CASE WHEN COALESCE(city,state,zip_code) IS NOT NULL
THEN
TRIM(REPLACE(CONCAT(IFNULL(city,""),
" ",
IFNULL(state,""),
" ",
IFNULL(zip code,"")),
" "," "))
ELSE
NULL
END
OR
CONCAT_WS
already handles NULL effectively, so we don't need a NULL check inside it.
CASE WHEN COALESCE(city,state,zip_code) IS NOT NULL
THEN
CONCAT_WS(' ',city,
state,
zipcode)
ELSE
NULL
END AS location