【发布时间】:2016-06-10 10:48:19
【问题描述】:
在 PostgreSQL 中,我有以下查询来验证是否存在具有所需字段组合的行:
SELECT * FROM data
RIGHT JOIN (VALUES (2,2),(4,6)) AS t (o,p) ON p = set1_value AND o = set2_value
where id is null;
这会返回 VALUES 列表中在 data 表中找不到的所有组合。
H2 为此引发语法错误:t([*]o,p)
而且我看不出有什么办法。我已经尝试在 postgresql 兼容性中启动 H2,但没有成功。
还有其他方法可以实现吗?
我不知道应该引用语法的AS t(o,p) 部分,所以我无法搜索该术语。看起来像一个参数化的临时表或其他东西,但没有找到任何答案。
【问题讨论】:
-
AS t(o,p)是派生表的表别名。而values (...)部分称为“行构造函数”(您从insert语句中知道这一点)
标签: sql postgresql h2