0

通过以下查询,我尝试合并三件事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 查询中进行哪些更改..

4

1 回答 1

0

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

您必须要么使用IIFNULL列提供替代值,要么更改您的WHERE以处理多个NULL列。(未经测试)查询第一个选项(在这台机器上没有访问权限):

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
于 2012-05-23T23:43:05.517 回答