【发布时间】:2011-09-29 18:06:04
【问题描述】:
我不是 SQL DBA,但我遇到了问题。我们运行 MS SQL 2008 服务器并刚刚从 MS SQL 2000 升级它。我正在尝试运行为 MS SQL 2000 中的数据库创建的查询,并将结果用于我们的邮件列表。
查询是:
SELECT DISTINCT Title, FirstName, MiddleInitial, LastName, Suffix,
CompanyName, BAddress, BAddress2, BCity, BState, BZip
FROM MailingExportView
WHERE AdvanceMailing = 0
ORDER BY BZip, LastName
这给了我们类似的东西:
Title FirstName MiddleInitial LastName Suffix CompanyName BAddress BAddress2 BCity BState BZip
Mr. Bob NULL Smith NULL NULL 12345 Main , Anytown State, NULL NULL
我不想得到 NULL。如果理想情况下该字段为空,我希望它返回空白。
我从其他网站和这里阅读了关于 Null 处理的信息;
http://technet.microsoft.com/en-us/library/ms170707.aspx
我尝试重新排列,以便 ISNULL 将空值放在不同的表中:
How to replace blank (null ) values with 0 for all records?
http://bytes.com/topic/sql-server/answers/888443-convert-null-blank-if-not-null-remove-commas-string
http://www.w3schools.com/sql/sql_isnull.asp
我在这里不知所措。有人可以帮帮我吗?
【问题讨论】:
-
4 COALESCE 与 2 ISNULL,所以选择吧。唯一的区别是 (1) coalesce 将接受任意数量的参数并返回列表中第一个不为空的参数,并且 (2) isnull 更容易键入。
标签: sql sql-server sql-server-2008 null