我想对first,middle和lastname进行组合搜索。查询是:
SELECT picture,person_id, firstname+ ' ' +middlename+ ' ' +lastname AS fullName
FROM PERSON
WHERE (firstname+ ' ' +middlename+ ' ' +lastname LIKE"%#queryString#%")
现在这适用于:Peter den Test(第一/中/后) 这不适用于:Marc Baker(第一个/没有中间名/最后一个)。在Marc Baker出现之前我必须输入两个空格。我可以检查查询中的中间名是否为空?
谢谢!
答案 0 :(得分:1)
我认为这样可行:
WHERE (firstname+ ' ' +LTRIM(middlename+ ' ' +lastname) LIKE"%#queryString#%")
答案 1 :(得分:1)
是的,您可以使用CASE
进行检查,例如:
SELECT picture,person_id, firstname+ ' ' +middlename+ ' ' +lastname AS fullName
FROM PERSON
WHERE (firstname
+ CASE WHEN middlename = '' OR middlename IS NULL THEN '' ELSE ' ' +middlename END
+ ' ' +lastname LIKE"%#queryString#%")
答案 2 :(得分:0)
尝试这样:
SELECT picture,person_id, firstname+ ' ' +middlename+ ' ' +lastname AS fullName
FROM PERSON
WHERE (firstname+ ' ' + LTRIM(middlename + ' ') + lastname LIKE"%#queryString#%")