sql - 使用 WITH 子句声明和使用变量
问题描述
我有一个使用 WITH 子句(子查询分解)的查询,我需要定义一个变量并为其分配一个值,以便在 WITH 子句中的几个子查询中使用。
是否可以?
谢谢。
我尝试了一些方法来定义变量并影响它,但我总是有语法错误。
解决方案
您可以使用以下两种方法:
1. 在 WITH 子句中使用
WITH MY_VARIABLE ( VAL ) AS (
SELECT
12 -- your variable value goes here
FROM
DUAL
), MY_MAIN_WITH_QUERY ( DIFFERENT_COLUMNS ) AS (
SELECT
1
FROM
MY_VARIABLE M
WHERE
M.VAL > 10 -- the use of a variable in your main query
)
SELECT
*
FROM
MY_MAIN_WITH_QUERY;
2. 使用定义
DEFINE VAL=12; -- declaring and assigning value to your variable
WITH MY_MAIN_WITH_QUERY ( DIFFERENT_COLUMNS ) AS (
SELECT
1
FROM
DUAL
WHERE
&VAL > 10 -- the use of your variable in your query
)
SELECT
*
FROM
MY_MAIN_WITH_QUERY;
干杯!!
推荐阅读
- c++ - 我如何在头文件和类文件中将其分开?
- python-3.x - 显示 2 位小数,并在 pandas 中使用逗号作为分隔符?
- python - Discord.py 制作队列命令
- typescript - 如何在 TypeScript 中获取 JSON 文件上的 Object.keys 时设置类型?
- node.js - 如何使用 MongoDB、Node 和 Monk 通过字符串 id 查找?
- python - Python Numpy 根据索引值列表提取数组元素
- php - Laravel api 发布数据返回 null
- python - 如何更新流程中的班级成员?
- android - 如何以及在何处声明用于保存数据的全局变量
- websocket - 通过 Websockets 连接到 Mosquitto Broker 时出错