在查询中使用案例

时间:2019-03-26 05:17:35

标签: sql

我想使用大小写从表聊天中获取价值,

SELECT user_one, user_two
FROM chatting, users
WHERE
CASE 
WHEN user_one = 36 
THEN user_two = 55
WHEN user_two = 55 
THEN user_one = 36 
END

但是在“ THEN user_two = 55”之后出现此错误 错误是“'='附近的语法不正确。”

2 个答案:

答案 0 :(得分:5)

不可能使逻辑表达式成为CASE表达式的谓词。也就是说,THENELSE之后的必须是文字值。但是,我们可以将您的逻辑重写为:

SELECT
    user_one,
    user_two
FROM chatting c
INNER JOIN users u
    -- ON <some condition>
WHERE
    (user_one = 36 AND user_two = 55) OR (user_one = 55 AND user_two = 36);

根据您的SQL版本,我们也许可以使用元组编写WHERE子句,如下所示:

WHERE
    (user_one, user_two) IN ((36, 55), (55, 36));

答案 1 :(得分:0)

您只需要

   where (user_one =36 and user_two = 55)