【发布时间】:2023-01-18 20:44:12
【问题描述】:
我想根据我在 3 列中指定的值从我的表中获取特定的数据子集。
以下 SQL 返回预期结果(但表中只有 1 条记录)。
SELECT *
FROM myTable
WHERE (col1, col2, col3) = (value1, value2, value3);
结果示例:
| Column 1 | Column 2 | Column 3 | Column 4 |
|---|---|---|---|
| value 1 | value 2 | value 3 | value 4 |
现在我想要做的就是从表中返回多条记录,其中包含 col1、2 和 3 的指定值。
我将上面的查询更改如下:
SELECT *
FROM myTable
WHERE (col1, col2, col3) IN ((value1, value2, value3), (value5, value6, value7));
我期待从我的表中返回 2 行。我的预期结果的一个例子:
| Column 1 | Column 2 | Column 3 | Column 4 |
|---|---|---|---|
| value 1 | value 2 | value 3 | value 4 |
| value 5 | value 6 | value 7 | value 8 |
但是我的查询给了我以下错误:SQL 错误 [42601]:[SQL0104] 标记“value1”无效。有效标记:(.
请帮助正确的语法。
【问题讨论】:
-
您的语法很好,SQL 标准可选功能。但似乎 DB2 不支持它。