Query

SQL WITH (CTE)

为单条语句定义公用表表达式。

适用版本/范围: 常见 SQL 条目,提供通用 SQL、MySQL/MariaDB、PostgreSQL、SQL Server、SQLite 与 Oracle Database 参考;语法和功能支持因数据库及版本而异。English

语法

WITH cte_name AS (SELECT ...) SELECT ... FROM cte_name;

用法示例

示例(标准风格语法);请确认数据库支持对应关键字。

WITH recent AS (SELECT id, total FROM orders WHERE created_at >= CURRENT_DATE - INTERVAL '30' DAY) SELECT * FROM recent;

SQLite 风格示例;实际方言行为可能不同。

WITH recent AS (SELECT id, total FROM orders WHERE created_at >= date('now', '-30 days')) SELECT * FROM recent;

参数、选项与子句

参数 / 子句说明
SELECT / expression选择输出列、表达式、别名或函数。
FROM / JOIN指定来源表并组合关联行。
WHERE在分组前筛选行;判断空值请使用 IS NULL。
GROUP BY / HAVING对行分组并筛选聚合后的分组。
ORDER BY对结果排序;通常默认 ASC,DESC 表示反向。
LIMIT / OFFSET / FETCH限制或跳过行;语法因数据库方言而异。

方言参考文档

安全提示

执行前请核对命令和目标路径。修改文件、服务、账户、磁盘、权限或数据库的操作可能难以撤销;建议先在安全环境测试并保留备份。

参考文档 ↗返回目录