You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle如何从dual表查询带别名的两行两列模拟数据

Oracle构造多行模拟数据解决方案

原SQL错误原因

  • dual是Oracle内置的仅返回1行的虚表,单次查询dual只能得到1行结果
  • 你将两个姓名、两个手机号都放在同一段SELECT的字段列表中,会得到1行4个字段的结果,同时还会出现name、phone字段重名的语法问题

方案1:UNION ALL 拼接(兼容性最优,适合少量模拟数据)

该方法逻辑直观,所有Oracle版本均支持,是最常用的少量模拟数据构造方案:

SELECT 'John' AS name, '1234' AS Phone FROM dual
UNION ALL
SELECT 'Mary' AS name, '4321' AS Phone FROM dual;

方案2:CONNECT BY 批量构造(适合多行模拟数据场景)

如果后续需要生成更多行模拟数据,可以用CONNECT BY语法避免重复书写UNION ALL:

SELECT 
  DECODE(LEVEL, 1, 'John', 2, 'Mary') AS name,
  DECODE(LEVEL, 1, '1234', 2, '4321') AS Phone
FROM dual
CONNECT BY LEVEL <= 2;

两种方案执行后均可得到你预期的输出结果:

name   Phone
----   -----
John   1234
Mary   4321

内容的提问来源于stack exchange,提问作者user5507535

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:36:03