Я прочитав тут усі відповіді, і пішов час, щоб зрозуміти, що відбувається. Далі ґрунтується на відповіді Мо Сіско та деяких супутніх досліджень
Якщо ваш запит SQL не повертає жодних даних, немає поля з нульовим значенням, тому ні ISNULL, ні COALESCE не працюватимуть так, як ви хочете. За допомогою підзапиту запит верхнього рівня отримує поле з нульовим значенням, і як ISNULL, так і COALESCE працюватимуть так, як ви хочете / очікуєте.
Мій запит
select isnull(
(select ASSIGNMENTM1.NAME
from dbo.ASSIGNMENTM1
where ASSIGNMENTM1.NAME = ?)
, 'Nothing Found') as 'ASSIGNMENTM1.NAME'
Мій запит із коментарями
select isnull(
--sub query either returns a value or returns nothing (no value)
(select ASSIGNMENTM1.NAME
from dbo.ASSIGNMENTM1
where ASSIGNMENTM1.NAME = ?)
--If there is a value it is displayed
--If no value, it is perceived as a field with a null value,
--so the isnull function can give the desired results
, 'Nothing Found') as 'ASSIGNMENTM1.NAME'