如何在Oracle SQL中从静态元组列表执行查询?
Oracle SQL 查询静态元组列表的正确写法
你的SQL语句报错是因为Oracle不支持直接将元组列表作为数据源的语法,以下是两种可行的解决方式:
方式一:兼容所有Oracle版本(使用UNION ALL + DUAL表)
这种写法适用于所有Oracle版本,通过UNION ALL拼接多个DUAL表的查询结果:
SELECT 'test' AS val1, 'B' AS val2 FROM DUAL UNION ALL SELECT 'test2' AS val1, 'C' AS val2 FROM DUAL UNION ALL SELECT 'test3' AS val1, 'D' AS val2 FROM DUAL;
方式二:Oracle 12c及以上版本简化写法(使用VALUES子句)
如果你的Oracle版本是12c或更高,可以使用VALUES构造静态数据集,但必须为子查询的表和列指定别名:
SELECT val1, val2 FROM ( VALUES ('test','B'),('test2','C'),('test3','D') ) AS t(val1, val2);
内容的提问来源于stack exchange,提问作者Joezzz
相关产品推荐
相关产品推荐

