hive not in
时间: 2023-10-24 15:33:13 浏览: 39
在ive中,如果我们使用的版本不支持类似于in、exists、not in等子查询,很可能是0.13版本之前的旧版本。在这种情况下,我们可以将not in改写为not exists来实现相同的功能。具体的改写方法可以参考以下示例查询语句:
SELECT * FROM test.in_test1 test1 WHERE NOT exists (SELECT * FROM test.in_test2 test2 WHERE test1.name = test2.name)。
此外,如果在使用Hive的过程中遇到无法查询出结果的情况,主要原因可能是因为Hive不支持where子句中的子查询。因此,需要将not in的SQL语句改写为not exists或left join来解决这个问题。可以参考以下示例创建表、插入数据和查询数据的操作:
1. 创建表:
CREATE TABLE test.in_test1 (id varchar(10), name varchar(10), sex varchar(10), age varchar(10));
CREATE TABLE test.in_test2 (id varchar(10), name varchar(10), class varchar(10), school varchar(10));
2. 插入数据:
INSERT INTO test.in_test1 VALUES ('1', 'xiaoming', '1', '17'), ('2', 'xiaohua', '0', '23'), ('3', 'jack', '1', '12'), ('4', 'rose', '0', '28'), ('5', 'jenny', '0', '45'), ('6', 'judy', '0', '10'), ('7', 'wangwu', '1', '35');
INSERT INTO test.in_test2 VALUES ('1', 'xiaoming', '3', '花花高中'), ('2', 'xiaohua', '5', '北京大学'), ('3', 'jack', '2', '新民中学'), ('4', 'rose', '1', '清华大学');
3. 查询数据:
SELECT * FROM test.in_test1;
这样,你就可以在Hive中使用not in相关的查询了。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>