T-SQL的COALESCE()函数能够让你指定多个表达式,而且COALESCE()会返回组里第一个非空的值。要使用下面的形式,其中expression可以是任何数据类型,并能够等于大多数合法的表达式:
COALESCE (expression [,…n])
这个函数没有限制自变量的数量,但是它们必须都是同一个数据类型;这个函数会返回同expression相同的数据类型。当所有的自变量都是NULL的时候,COALESCE()就会返回NULL。
还记得先前当地区的值为空时显示N/A的MDB例子吗?如果使用COALESCE()的话就会有一个更好的解决方案(要记住,MDB文件里没有COALESCE())。下面的代码没有显示字符串N/A,而是显示了雇员国家(Country)值:
SELECT TOP 100 PERCENT LastName, FirstName, COALESCE (Region, Country) AS Area
FROM dbo.Employees
ORDER BY LastName, FirstName
图D显示了其结果。如果地区的值为空,那么COALESCE()就会返回相应的国家值。
图D
使用
COALESCE()来返回空值以外的东西
阻止空值
除了你在软件开发中的作用,还有一件事是可以肯定的——处理空值失败可能会让你丢饭碗。了解如何找到和处理空值是关键,无论如何,你都不能在MDB文件和ADP文件里(或者SQL服务器里)使用相同的策略。准备好了解如何在这两个系统里找到空值吧。