如何在sql中使用if语句?我想做这样的事情:
SELECT DISTINCT exchange.id userid, exchange.name username, exchange.lastactivity lastactivity, exchange.id avatar, exchange.id link, cometchat_status.message, cometchat_status.status
FROM buddy
if( buddy.penpalA = 887){
JOIN exchange ON buddy.penpalA = exchange.id
}ELSE{
JOIN exchange ON buddy.penpalB = exchange.id
}
LEFT JOIN cometchat_status ON exchange.id = cometchat_status.userid
if( buddy.penpalA = 887){
WHERE buddy.penpalB =887
}ELSE{
WHERE buddy.penpalA =887
}
ORDER BY username ASC 发布于 2012-01-19 03:21:23
只需修改您的WHERE和ON。请注意,ANDed比较周围的段落是不必要的;我这样做只是为了澄清正在发生的事情。
SELECT DISTINCT exchange.id userid, exchange.name username,
exchange.lastactivity lastactivity, exchange.id avatar,
exchange.id link, cometchat_status.message,
cometchat_status.status
FROM buddy
JOIN exchange ON (buddy.penpalA = exchange.id AND buddy.penpalA = 887)
OR (buddy.penpalB = exchange.id AND buddy.penpalA <> 887 AND buddy.penpalB = 887)
LEFT JOIN cometchat_status ON exchange.id = cometchat_status.userid
WHERE buddy.penpalA = 887 OR buddy.penpalB = 887
ORDER BY username ASC更新:
我更改了上面的代码,以便在penpalB为887时也加入,根据我对您的评论的理解。
发布于 2012-01-19 03:22:50
使用Transact-SQL,您可以构造一个IF-ELSE,如下所示:
IF a > b
BEGIN
// do something
END
ELSE
// do something elsehttps://stackoverflow.com/questions/8915973
复制相似问题