如果是,则标识列

时间:2014-07-21 09:31:39

标签: sql-server

我正在开发一个需要朋友请求的网站,而我想要做的就是当登录用户搜索时,在结果中有些人已经是他或她的朋友,它应该识别但是我&#39我很难做到这一点。

SELECT CASE WHEN resp_email = 'Yes' THEN 'Friend' ELSE 'Send Request' END as Answer
FROM dbo.profile 
INNER JOIN friends On profile.email = MMColParam
WHERE fname LIKE %varsearch%
ORDER BY fname ASC

我希望你们能理解我的问题。

1 个答案:

答案 0 :(得分:0)

试试这个

SELECT 
    CASE WHEN ISNULL(resp_email, 'No') = 'No' THEN 'Send Request' ELSE 'Friend' END as Answer
FROM 
   dbo.profile p
   LEFT JOIN friends f On p.email = f.[CurrentUserIDCol]
   AND f.[CurrentUserIDCol] = 'CurrentUserID'
WHERE 
   fname LIKE %varsearch%
ORDER BY fname ASC

提示:选择所有配置文件,执行左连接以确保选中所有配置文件记录。 检查JOIN右侧的NULL(好友表)。如果为NULL,那么它还不是朋友

构建条件的其他方式

CASE WHEN resp_email IS NOT NULL AND  resp_email  = 'Yes' THEN 'Friend' ELSE 'Send Request' END Answer