我希望根据在3列中指定的值从表中获取特定的数据子集。
下面的SQL返回了预期的结果(但只有表中的1条记录)。
SELECT *
FROM myTable
WHERE (col1, col2, col3) = (value1, value2, value3);
结果示例:
| 第1栏|第2栏|第3栏|第4栏|
| - ------|- ------|- ------|- ------|
| 值1|值2|值3|值4|
现在我要做的就是从表中返回多个记录,并为col1、2和3指定值。
我将上述查询更改如下:
SELECT *
FROM myTable
WHERE (col1, col2, col3) IN ((value1, value2, value3), (value5, value6, value7));
我期望从表中返回2行。期望结果的示例:
| 第1栏|第2栏|第3栏|第4栏|
| - ------|- ------|- ------|- ------|
| 值1|值2|值3|值4|
| 值5|值6|值7|值8|
但是查询出现以下错误:* SQL错误[42601]:[SQL0104]标记'value1'无效。有效标记:(.*
请帮助更正语法。
3条答案
按热度按时间z5btuh9x1#
如果要对多行进行编码,则必须在前面加上
values
关键字,如下所示goucqfw62#
我会试试:
此选项未使用(可选)功能“T051,行类型”
cgyqldqp3#
另一种选择: