通过以下查询我尝试合并三件事parEmail
,parEmployeeLogin
和parStaffID
现在在一个为null的情况下,我得到整个NameValue为null。
SELECT (parFirstname +' '+ parSurname) AS NAME,
(parEmail +','+ parEmployeeLogin +','+ parStaffID) AS NameValue
FROM [tblParticipants]
where parFirstname Is Not Null
ORDER BY parFirstname
如果所有三个字段都有数据,则NameValue只包含数据,它正在正确地获取NAME ....我正在使用它从Access文件中获取数据..应该在此oledb查询中进行哪些更改..
答案 0 :(得分:0)
NULL
+任何= NULL
。您已使用partFirstName
子句阻止NULL
成为WHERE
,但如果其他两列中的任何一列为NULL
,则整个结果为NULL
。
您必须使用IIF
为NULL
列提供备用值,或者更改WHERE
以处理多个NULL
列。 (未经测试)查询第一个选项(在此计算机上没有Access):
SELECT
partFirstName + ' ' + IIF(IsNull(parSurName), '<None>', parSurName) as Name,
IIF(IsNull(parEMail), '<No Mail>', parEMail) + ', ' +
IIF(IsNUll(parEmployeeLogin), '<No Login>', parEmployeeLogin) + ', ' +
IIF(IsNull(parStaffID), '<No ID>', parStaffID) as NameValue
FROM
[tblParticipants]
WHERE
parFirstName IS NOT NULL
ORDER BY
parFirstname