Sql server 如果是,请标识列

Sql server 如果是,请标识列,sql-server,Sql Server,我正在开发一个需要朋友请求的网站,我想做的是当登录的用户搜索和结果中的一些人已经是他或她的朋友时,它应该识别,但我很难做到这一点 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

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

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
我希望你们能理解我的问题。

试试这个

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 friends表右侧的NULL。如果为空,则它还不是朋友

构建条件的其他方式

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

“更正”是什么意思?请发布您在查询中得到的预期结果和实际结果。或者至少发布您得到的错误部分,例如当@Anand登录用户并搜索朋友时,如果用户2已经是您的朋友,则其中一些人已经是他的朋友。如果user2不是您的朋友,请向他发送一个请求。@blay:我可以理解它的用法。我认为问题可能出在所使用的联接中。您能用所使用的列发布表结构吗。来自@codingbiz的回答还试图使用您的详细信息以外的其他列。所以也来看看吧