软件测试开发技术SQL Server COALESCE()函数的创新应用

发表于:2009-10-20来源:作者:点击数: 标签:软件测试SqlsqlSQLCOALESCE
软件测试 开发 技术 SQL Server COALESCE()函数的创新应用 SQL Server 数据库 关键字:SQL Server COALESCE 函数 【赛迪网-IT技术报道】COALESCE()函数可以接受一系列的值,如果列表中所有项都为空(null),那么只使用一个值。然后,它将返回第一个非空值

软件测试开发技术SQL Server COALESCE()函数的创新应用  SQL Server 数据库

关键字:SQL Server COALESCE 函数  

【赛迪网-IT技术报道】COALESCE()函数可以接受一系列的值,如果列表中所有项都为空(null),那么只使用一个值。然后,它将返回第一个非空值。这一技巧描述了创造性使用SQL Server 中COALESCE()函数的两种方法。

这里有一个简单的例子:有一个Persons数据表,它有三个字段FirstName、MiddleName和LastName。表中包含以下值:

John A. MacDonald

Franklin D. Roosevelt

Madonna

Cher

Mary Weilage

如果你想用一个字符串列出他们的全名,下面给出了如何使用COALESCE()函数完成此功能:

SELECT FirstName + '' '' +COALESCE(MiddleName,'''')+ '' '' +COALESCE(LastName,'''')

如果你不想每个查询都这样写,列表A显示了如何将它转换成一个函数。这样当你需要使用这个脚本的时候(不管每个列的实际值是什么),可以直接调用该函数并传递三个字段参数。在下面的例子中,我传递给函数的参数是人名,但是你可以用字段名替代得到同样的结果:

SELECT dbo.WholeName(''James'',NULL,''Bond'')

UNION

SELECT dbo.WholeName(''Cher'',NULL,NULL)

UNION

SELECT dbo.WholeName(''John'',''F.'',''Kennedy'')

测试结果如下:

James Bond

Cher

John F. Kennedy

你可能会注意到我们的一个问题,在James Bond这个名字中有两个空格。通过修改@result这一行可以改正这个问题,如下所示:

原文转自:http://www.ltesting.net