SQL Where!= stringval不过滤掉stringval

时间:2017-08-01 14:32:00

标签: sql

我有一个来自HBase的表(因为 table1 ),它有某些我想要过滤掉的东西。我重新创建了表,我的SQL查询和我在下面收到的输出。当我尝试过滤掉它保留在表中的字符串值时,即使我想要它,也会发生这种情况。

table1 (有些头寸是完全大写的,有些不是,希望将它们全部大写并过滤掉头寸)

name | company  | personal_id | position
Joe  | Applebees| 32          | manager
Jack | Target   | 12          | CLERK
Jim  | Chipotle | 22          | COOK
Ron  | Starbucks| 13          | barista

查询

df = sqlContext.sql("select name, company, personal_id, UCASE(position) as position
                     from table1
                     where position != 'BARISTA'") #tried lower & upper case

输出已撤消

name | company  | personal_id | position
Joe  | Applebees| 32          | MANAGER
Jack | Target   | 12          | CLERK
Jim  | Chipotle | 22          | COOK
Ron  | Starbucks| 13          | BARISTA  /*dont want this output*/

为什么行Ron | Startbucks| 13 | BARISTA没有使用where子句进行过滤?

2 个答案:

答案 0 :(得分:2)

尝试

where UCASE(position) != 'BARISTA' 

答案 1 :(得分:1)

为什么要对结果进行分组。在使用聚合函数之前,不需要对结果进行分组。请尝试以下查询 -

select name, company, personal_id, UCASE(position) as position
from table1
where upper(position) != 'BARISTA'