Hive实例:IN和NOT IN子句的方法和示例
Hive中的IN和NOT IN子句可以用来检查一个值是否存在于一个列表中,或者检查一个值是否不存在于一个列表中。
IN子句的使用方法
IN子句的语法如下:
SELECT [column_name(s)] FROM [table_name] WHERE [column_name] IN ([value1], [value2], ...);
IN子句可以用来检查一个值是否存在于一个列表中。例如,如果我们想要检查一个表中的某一列是否包含值1、2或3,可以使用以下查询:
SELECT * FROM table_name WHERE column_name IN (1, 2, 3);
NOT IN子句的使用方法
NOT IN子句的语法如下:
SELECT [column_name(s)] FROM [table_name] WHERE [column_name] NOT IN ([value1], [value2], ...);
NOT IN子句可以用来检查一个值是否不存在于一个列表中。例如,如果我们想要检查一个表中的某一列是否不包含值1、2或3,可以使用以下查询:
SELECT * FROM table_name WHERE column_name NOT IN (1, 2, 3);
示例
假设我们有一个名为“employees”的表,其中包含以下信息:
+----+------------+-----------+ | id | first_name | last_name | +----+------------+-----------+ | 1 | John | Doe | | 2 | Jane | Smith | | 3 | Joe | Johnson | | 4 | Bill | Jones | +----+------------+-----------+
要查询id列中包含1、2或3的行,可以使用以下IN子句:
SELECT * FROM employees WHERE id IN (1, 2, 3);
结果如下:
+----+------------+-----------+ | id | first_name | last_name | +----+------------+-----------+ | 1 | John | Doe | | 2 | Jane | Smith | | 3 | Joe | Johnson | +----+------------+-----------+
要查询id列中不包含1、2或3的行,可以使用以下NOT IN子句:
SELECT * FROM employees WHERE id NOT IN (1, 2, 3);
结果如下:
+----+------------+-----------+ | id | first_name | last_name | +----+------------+-----------+ | 4 | Bill | Jones | +----+------------+-----------+