2016-08-14 49 views
1

ContactPerson類型爲nvarchar。選擇ISNULL不返回替換值

的問題是,當ContactPerson是空的沒有返回n/a

查詢

Select ISNULL(ContactPerson,'n/a') from [dbo].[Suppliers] 
+1

'NULL'與「空」不一樣。值爲null還是空字符串? – Blorgbeard

+0

空字符串 – Ayman

回答

3

空字符串(''),而不是一回事空值。 ISNULL()僅爲實際的空值返回替換值。

可以使用NULLIF()爲空字符串評價爲空值:

SELECT ISNULL(NULLIF(ContactPerson, ''), 'n/a') ... 
0

我會建議使用COALESCE代替ISNULL,與NULLIF功能:

SELECT COALESCE(NULLIF(ContactPerson,''),'n/a') 
FROM [dbo].[Suppliers] 

您可以找到COALESCE和ISNULL fe的區別here