0

我有一个包含三列的表,可以表示如下:

|---|---|---|
| 1 | 2 | 3 |
|---|---|---|
| A | B | C |    
| B | C | A |
| C | A | B |

还有一个二维数组,如下所示:

[
 [A,B,C],
 [C,A,B],
 [B,A,C]
        ]

我想只选择表中与二维数组中的一行匹配的行。

显而易见的解决方案是遍历并进行 3 个查询,但我想知道是否有任何方法可以一次性完成SELECT


编辑:“循环方法”的工作示例。

SET LOG_ROWS = 0;
DECLARE LOCAL TEMPORARY TABLE MODULE.X(col1 char(1), col2 char(1), col3 char(1));

local array, i integer;

REDIM(array,3,3);
array[0,0] = 'A';
array[0,1] = 'B';
array[0,2] = 'C';
array[1,0] = 'C';
array[1,1] = 'A';
array[1,2] = 'B';
array[2,0] = 'B';
array[2,1] = 'A';
array[2,2] = 'C';


INSERT INTO MODULE.X VALUES('A','B','C');
INSERT INTO MODULE.X VALUES('B','C','A');
INSERT INTO MODULE.X VALUES('C','A','B');

FOR i = 0 TO UBound(array) DO
    SELECT * FROM MODULE.X WHERE col1 = array[i,0] AND col2 = array[i,1] AND col3 = array[i,2];
END 

结果:

col1 col2 col3
---- ---- ----
A    B    C
col1 col2 col3
---- ---- ----
C    A    B
4

0 回答 0