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

使用WITH子句存储临时数据:Oracle语法的SQLite等价写法是什么?

Oracle WITH子句存储临时数据语法的SQLite等价写法

SQLite 3.8.3及以上版本原生支持WITH公共表表达式语法,和给出的Oracle写法只有一处核心差异:SQLite没有Oracle内置的dual虚拟表,查询常量行时不需要加FROM dual子句,其余逻辑完全兼容。

直接可用的等价SQL写法如下:

WITH data(asset_id, x, y) AS (
    SELECT 100, 10, 20 UNION ALL
    SELECT 200, 30, 40 UNION ALL
    SELECT 300, 50, 50
)
SELECT * FROM data;

执行后返回的结果和Oracle运行结果完全一致:

asset_idxy
1001020
2003040
3005050

如果你使用的是3.8.3之前不支持WITH语法的极老旧SQLite版本,可以用子查询构造临时数据集实现相同效果,写法如下:

SELECT * FROM (
    SELECT 100 AS asset_id, 10 AS x, 20 AS y UNION ALL
    SELECT 200, 30, 40 UNION ALL
    SELECT 300, 50, 50
) AS data;

注意:不要为了兼容Oracle习惯在SQLite中手动创建dual表,无意义增加冗余对象,直接省略FROM dual是SQLite的标准写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:31:04