oledb命令没有获取值

时间:2012-05-23 23:19:58

标签: ms-access oledbcommand

通过以下查询我尝试合并三件事parEmailparEmployeeLoginparStaffID

现在在一个为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查询中进行哪些更改..

1 个答案:

答案 0 :(得分:0)

NULL +任何= NULL。您已使用partFirstName子句阻止NULL成为WHERE,但如果其他两列中的任何一列为NULL,则整个结果为NULL

您必须使用IIFNULL列提供备用值,或者更改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