Tôi đã đọc tất cả các câu trả lời ở đây và phải mất một lúc để tìm hiểu điều gì đang xảy ra. Sau đây là câu trả lời của Moe Sisko và một số nghiên cứu liên quan
Nếu truy vấn SQL của bạn không trả về bất kỳ dữ liệu nào thì không có trường có giá trị null vì vậy cả ISNULL và COALESCE sẽ không hoạt động như bạn muốn. Bằng cách sử dụng truy vấn phụ, truy vấn cấp cao nhất nhận được một trường có giá trị null và cả ISNULL và COALESCE sẽ hoạt động như bạn muốn / mong đợi.
Sự truy vấn của tôi
select isnull(
(select ASSIGNMENTM1.NAME
from dbo.ASSIGNMENTM1
where ASSIGNMENTM1.NAME = ?)
, 'Nothing Found') as 'ASSIGNMENTM1.NAME'
Truy vấn của tôi với nhận xét
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'