MySQL:案例当替代/正确的陈述

时间:2016-01-02 00:56:18

标签: mysql sql

我有这样的表:

Order    | UserID | Date       | Channel |
------------------------------------------
1        | 1      | 2015/01/01 | Direct  |
2        | 1      | 2015/01/02 | Natural |
3        | 1      | 2015/01/03 | PPC     |
4        | 1      | 2015/01/04 | Direct  |
1        | 2      | 2015/01/01 | Natural |
2        | 2      | 2015/01/02 | Natural |
1        | 3      | 2015/01/01 | Direct  |
2        | 3      | 2015/01/02 | Natural |
3        | 3      | 2015/01/03 | PPC     |
1        | 4      | 2015/01/01 | Natural |
2        | 4      | 2015/01/02 | PPC     |
3        | 4      | 2015/01/03 | Direct  |
4        | 4      | 2015/01/04 | Natural |

我想删除Order = 1不是'Natural'的完整UserID。 换句话说,我想删除那些没有通过“自然”频道开始网站旅行的用户。

这是我希望看到的表格:

Order    | UserID | Date       | Channel |
------------------------------------------
1        | 2      | 2015/01/01 | Natural |
2        | 2      | 2015/01/02 | Natural |
1        | 4      | 2015/01/01 | Natural |
2        | 4      | 2015/01/02 | PPC     |
3        | 4      | 2015/01/03 | Direct  |
4        | 4      | 2015/01/04 | Natural |

我尝试使用CASE WHEN语句但结果不佳:

SELECT
    CASE
        WHEN Order = 1
        WHEN Channel = 'Natural'
    END
FROM tablename

1 个答案:

答案 0 :(得分:0)

您需要使用Where子句来过滤表中的记录,而不是case语句

SELECT *
FROM tablename
WHERE Order = 1
  AND Channel <> 'Natural'