SQLScript 支持将 IN 子句用作 IF 或 WHILE 语句中的条件。与标准 SQL 一样,条件可以采用以下形式之一:
在这两种情况下,右侧结果集相应行的每个列表中的条目数量和类型都必须与左侧条目的数量和类型相匹配。
示例代码伪代码示例-- single expression on the left-hand sideIF :i IN (1, 2, 3, 6, 8, 11, 12, 100) THEN[...]END IF; -- multiple expressions on the left-hand sideIF (:key, :val) NOT IN ((1, 'H2O'), (2, 'H2O'), (3, 'abc'), (5, 'R2D2'), (6, 'H2O'), (7, 'H2O')) THEN[...]END IF; -- subquery on the right-hand sideIF :i NOT IN (SELECT a FROM mytable) THEN[...]END IF; -- subquery using table variableIF (:a, :b, :c) IN (SELECT id, city, date from :lt where :id < :d) THEN[...]END IF; -- subquery using table functionFOR i IN 1 .. CARDINALITY(:arr) DO IF :arr[:i] IN (SELECT b FROM tfunc()) THEN [...] END IF;END FOR;
可以使用浮点数、变量和表达式,但由于这些数据类型的实施,计算结果可能不准确。有关详细信息,请参阅 SAP HANA SQL 和系统视图参考中的数字数据类型章节。