SELECT
CASE WHEN LEN(listing.OfferText) > 0 THEN listing.OfferText
ELSE COALESCE(Company.OfferText, '') END
AS Offer_Text,
...
В этом примере, если listing.OfferText
равно NULL, функция LEN () также должна возвращать NULL, но это все равно не> 0.
Обновление
Я научился некоторым вещам за 5 с половиной лет с момента публикации, и теперь делаю это по-другому:
COALESCE(NULLIF(listing.OfferText,''), Company.OfferText, '')
Это похоже на принятый ответ, но оно также имеет запасной вариант в случае, если Company.OfferText
также является нулевым. Ни один из других текущих ответов, использующих NULLIF()
, также не делает этого.