如何将此编码从sql server更改为postgresql

q9yhzks0  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(334)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

10个月前关门了。
改进这个问题
此查询正在使用microsoft sql server management studio成功运行,我无法在postgresql中使用它。我希望类似的查询使用postgresql得到相同的结果注意:这将在一个包含1个初级和2个高级的表上运行。如果我有更多的大三和大四学生,我也想使用这个查询

DECLARE @Budget Int = 50000, @Seniors int = 0, @Juniors int = 0, @SeniorSalary int = 20000, @juniorSalary int = 10000
WHILE @Budget >= @juniorSalary
BEGIN
IF @Budget >= @SeniorSalary
BEGIN
SET @Budget = @Budget - @SeniorSalary;
SET @Seniors = @Seniors + 1;
END
ELSE IF @Budget >= @juniorSalary
BEGIN
SET @Budget = @Budget - @juniorSalary;
SET @Juniors = @Juniors + 1;
END
END
SELECT @Seniors AS [Seniors], @Juniors as [Juniors], @Budget As [RemainingBudget]
xoshrz7s

xoshrz7s1#

您的第一个错误是假设某个东西在SQLServer中运行,它将postgres(或任何其他dbms)从该数据库中的所有流。此外,它不是一个查询,而是一个脚本,psql脚本的结构与t-sql脚本完全不同。我建议你花大量的时间学习一些postgres教程,比如命令行教程和postgresqlttutorial和/或其他的!喘气!旧技术-一本书。
我明白有时候问题只是概念问题,比如说在postgres中运行一个t-sql脚本。因此,我提供以下一次性演示,为您指明正确的方向。这是你剧本的后记译文,当然不是唯一的,也可能不是最好的。
我把它的描述留给你研究。

create or replace 
function developer_budget
       ( budget       integer  
       , seniorsalary integer
       , juniorsalary integer
       )
 returns table ( seniors    integer 
               , juniors    integer
               , remaining  integer 
               )
 language plpgsql 
as $$ 
declare
  seniors   integer  = 0;
  juniors   integer  = 0;
begin 
   while budget >= juniorsalary
   loop
      if budget >= seniorsalary then
         budget = budget - seniorsalary;
         seniors = seniors + 1;
      elsif budget >= juniorsalary then
         budget = budget - juniorsalary;
         juniors = juniors + 1;
      end if;
   end loop;

   return query select seniors,juniors, budget;
end;
$$;

select seniors   "Seniors"  
     , juniors   "Juniors"  
     , remaining "Remaining bubjet"
  from developer_budget( Budget       => 50000  
                       , SeniorSalary => 20000 
                       , JuniorSalary => 10000
                       );

相关问题