我有这样的表:
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
答案 0 :(得分:0)
您需要使用Where
子句来过滤表中的记录,而不是case
语句
SELECT *
FROM tablename
WHERE Order = 1
AND Channel <> 'Natural'