我想转换一个包含实际值的IN子句,而不是使用join子句的子查询。

select max(c1) from t1 where t1.id IN (
1,2,3,4......1000
)
and t1.c2 = something

如何将此查询转换为join子句?

最佳答案

您可以使用inlineVALUES构建数据集,并使用别名为该数据集提供名称和列名。

SELECT
    yourData.id, map.b
FROM
    yourData
INNER JOIN
(
  VALUES
    (1,2),
    (2,4),
    (3,8)
)
  map(a,b)
    ON map.a = yourData.a

10-06 03:19