嗨,我想根据位于另一个表的两列之间的值从表中获取数据,下面的 SQL 应该解释我的目的:
SELECT * FROM TABLE 1 WHERE 1.FIELD1 BETWEEN
(SELECT 2.RANGE_FROM FROM TABLE 2) AND (SELECT 2.RANGE_TO FROM TABLE 2)
这不起作用,因为我收到错误:
Error: SQL0811N The result of a scalar fullselect, SELECT INTO statement, or VALUES INTO statement is more than one row. SQLSTATE=21000
(State:21000, Native Code: FFFFFCD5)
这很明显,因为两个子查询都返回多行。所以我想编写一个 SQL 来执行上述功能而不会出错。该平台是IBM DB2
.
编辑:
好的,我想我通过使用条件加入 2 个表来解决这个问题:
SELECT * FROM TABLE1 A, TABLE2 B WHERE A.FIELD1 BETWEEN B.RANGE_FROM AND B.RANGE_TO
不过还需要更多的测试。