我正在使用 Transact-SQL 开发 Microsoft SQL Server 2005。
我正在尝试连接来自处理 NULL 值的同一表的不同列的字符串值。
例如,表是,Person
列是FirstName
,,SurnamePrefix
LegalSurname
碰巧将字符串值与 NULL 值(来自两个不同的列)连接会在输出中返回 NULL 值。我尝试了不同的方案来防止输出中出现 NULL 值:
- 从...开始:
Person.FirstName + ' ' + COALESCE(RTRIM(LTRIM(Person.SurnamePrefix)) + ' ', '') + Person.LegalSurname
- 我将我的声明更改为:
COALESCE(Person.FirstName + ' ', '') + COALESCE(Person.SurnamePrefix, '') + COALESCE(' ' + Person.LegalSurname, '')
然后我遇到了诸如ISNULL()
等之类的功能NULLIF()
。
在输出中显示空字符串值而不是 NULL 值的最佳和有效方法是什么?解决方案是否受 SQL Server 版本的影响?(即 2005 年、2008 年等)