sql - postgres:查询结果到变量中以备后用
问题描述
我最终会成为一个复杂的查询,其中某些部分经常会重复。因此,我想将一些子查询的结果存储到变量中,然后可以在主查询中使用。
例如,我想将变量设置'variable_id'
为等于一个 SELECT 查询并variable_school_id
等于另一个 SELECT 查询:
variable_id integer := (SELECT id FROM account WHERE email = 'test@test.com');
variable_school_id integer := (SELECT school FROM account WHERE email = 'test@test.com');
然后我想在查询中使用这些变量,如下所示:
select * from doctor where account_id = variable_id AND school = variable_school_id ;
我该怎么做呢?
解决方案
你不能只使用 CTE 吗?
with params as (
SELECT id, school
FROM account
WHERE email = 'test@test.com'
)
select d.*
from params cross join
doctor d
on d.account_id = params.id and d.school = params.school;
推荐阅读
- html - 为 SVG 实现剪辑路径
- django - 引导表单中的按钮不从输入提交文本
- reactjs - 居中地图,同时捏缩放像优步一样反应原生
- php - WooCommerce 的 MailChimp:在结帐字段中间添加复选框
- java - 部署 Google App Engine 后返回 HTTP 响应代码 403 和 Permission Denied 错误
- highcharts - 使用 scrollablePlotArea 时不显示重置按钮
- sql - 在 SQL 中将数据划分为选定的组
- bash - bash:与两个独立参数相关联的两个独立触发器
- ruby-on-rails - Rails Gem “Axlsx” - 添加图像失败
- python - 在python中查找与给定值匹配的数字组合