postgresql - 如何在存储过程中编写创建表语句
问题描述
如何在 postgresql 的存储过程中编写以下查询?
create table data1 as
select A.*,
case when score >=940 then 1
when score between 600 and 746 then 2
when bureau_score between 599 and 630 then 4 else 5 end as score_level,
case when band between -1 and 5 then 1
when band between 6 and 20 then 2
when band between 21 and 35 then 3 else 4 end as band_level
from data A;
解决方案
Postgresql 没有这样的存储过程,只有函数,所以。
如果它是简单的 SQL,您可以简单地包含在 SQL 函数定义中。
create or replace function foo () returns void language sql as $$
create table data1 as
select A.*,
case when score >=940 then 1
when score between 600 and 746 then 2
when bureau_score between 599 and 630 then 4 else 5 end as score_level,
case when band between -1 and 5 then 1
when band between 6 and 20 then 2
when band between 21 and 35 then 3 else 4 end as band_level
from data A;
$$;
叫它做SELECT foo();
推荐阅读
- javascript - 在 React 中验证多个路由
- regex - 在 Google 表格单元格之间以“学习”方式转换文本?
- html - 显示:与 google chrome 相比,Firefox 浏览器中的块链接占用更多宽度
- c# - 使用 RestSharp 动态访问 JSON 属性
- python - Spread custom tick labels evenly over colorbar
- r - 计算 r 中二元变量的相关系数
- sql - SQL (lite) 值映射
- javascript - 一次性清理任务 firebase firestore
- javascript - Threejs ,导入的 .objs 被拉伸,它们没有保存它们的实际大小
- c# - 将 Mat 数组从 EmguCV 传递到 OpenCV?