语法
expr IN (value,...)
函数说明
如果expr 是IN 列表中的任一值,它将返回1,否则返回0。
如果IN 列表中的所有值均是常量,那么所有的值被按照expr 的类型进行计算和
排序。
如果左边的表达式是NULL,或者在列表中没有发现相匹配的值并且列表中的一
个表达式是NULL,IN 均返回NULL。
IN()语法也可以用于子查询类型。
示例
示例1:expr 不是IN 列表中的任一值。
gbase> SELECT 2 IN (0,3,5,'8') FROM dual;
+------------------+
| 2 IN (0,3,5,'8') |
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
656
+------------------+
|
0 |
+------------------+
1 row in set
示例2:expr 是IN 列表中的值。
gbase> SELECT '1' IN (0,3,5,'1') as v_1,'1' IN (0,3,5,NULL) as v_null FROM
dual;
+-----+--------+
| v_1 | v_null |
+-----+--------+
|
1 |
NULL |
+-----+--------+
1 row in set
示例3:expr 的值为NULL。
gbase> SELECT NULL IN (0,3,5,'wefwf') FROM dual;
+-------------------------+
| NULL IN (0,3,5,'wefwf') |
+-------------------------+
|
NULL |
+-------------------------+
1 row in set
示例4:子查询中包含IN()函数。
示例中用到的表及数据:
CREATE TABLE sc (sno VARCHAR(4), grade INT);
INSERT INTO sc VALUES ('101',82),('102',59),('103',90),('104',88),('106',82);
查询所有课程都及格的同学的学号。
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
657
gbase> SELECT sno FROM sc WHERE grade IN (SELECT grade FROM sc
WHERE grade>60) GROUP BY sno;
+------+
| sno
|
+------+
| 103
|
| 101
|
| 104
|
| 106
|
+------+
4 rows in set