postgresql - 存储过程中的建表语句怎么写

标签 postgresql stored-procedures

如何在 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();

关于postgresql - 存储过程中的建表语句怎么写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51451334/

相关文章:

node.js - 正确的 Sequelize 流程以避免重复行?

arrays - 从结果集中检索列表数据并转换为 JSON

python - TypeError : the JSON object must be str, 不是 'DetailedResponse'

sql - 如何在oracle中打印游标值?

两个或多个值冲突时的 SQL Server 存储过程顺序

postgresql - 如何从postgresql恢复数据库 'postgres'

ruby-on-rails - 计算数据库用户数据的大量统计信息 : optimizing performance

sql - 执行并设置 Quoted_Identifier

c# - 由于没有 Sql Server 数组参数,最好的处理方法是什么?

mysql - 在单个 sql 语句中获取多个条件的计数和总和