【发布时间】:2020-12-03 19:44:24
【问题描述】:
我有一个查询返回一些人口统计数据,如名字、姓氏、中间名,我需要在每个查询上使用 LEFT 函数来过滤每列的第一个字母,如 LEFt(firstName, 1)。当每列是不是空值。当为空值时
select otherColumns, LEFT(sub.LastName, 1) + ',' + LEFT(sub.FirstName, 1) + ' ' + LEFT(sub.MiddleName, 1) as patientInitials from <table> <inner joins> <some where conditions>;
但是当 midName 等人口统计数据之一为 null 而其他 firstName、lastName 不为 null 时,patentInitials 正在评估为 NULL,不知道为什么?
我通过添加 COALESCE
解决了我的问题 LEFT(sub.LastName, 1) + ',' + LEFT(sub.FirstName, 1) + ' ' + COALESCE((LEFT(sub.MiddleName, 1)),'') as patientInitials
但是有没有其他好的方法来检查 LEFT 函数上的 notNull 呢??
帮助赞赏!
【问题讨论】:
标签: sql sql-server tsql