在没有PL / pgSQL的PostgreSQL中遍历选择结果

时间:2019-05-13 02:05:46

标签: sql postgresql plpgsql

我目前正在开发一个系统,该系统可以处理学校建筑物中班级和小房间的各种保留。我有这样一种方式,当您预订一间教室时,您会自动预订其中的每个小隔间。

我需要遍历纯SQL中的选择结果,而无需使用PL / pgSQL来实现此保留,因为尚不清楚在查询之前教室有多少个隔间。

我已经尝试过PL / pgSQL,尽管它可以很好地工作,但我需要一种不使用PL / pgSQL满足类要求的方法。这是我的带有try { Select-String -Path $String1Location -Pattern $String1 -ErrorAction Stop | Where-Object {$_ -match $String1} | Select-Object -Last 1 Select-String -Path $String1Location -Pattern $String2 -ErrorAction Stop | Where-Object {$_ -match $String2} | Select-Object -Last 1 } 关键字的PL / pgSQL实现的示例。

FOR

我希望当我获得建筑物编号和教室编号时,它将自动保留它也有的每个隔间。我不确定我是否有正确的方法,是否有更简单的方法来解决这个问题。

唯一的要求是不允许我使用PL / pgSQL编写函数。

1 个答案:

答案 0 :(得分:1)

为什么奇怪的要求不是来使用PL / pgSQL?但是,您可以使用SQL函数轻松做到这一点。

停止过程式思考,然后开始使用SQL进行思考。您想要做的事可以通过一个查询而无需(显式)循环:

SELECT createReservationCubicule(
          p_codeBuilding,
          p_codeClass,
          CODE_CUBICULE,
          p_CIP,
          p_date,
          p_startPeriod
          p_endPeriod,
          p_description
       )
FROM public.CUBICULE
where CODE_BUILDING = p_codeBuilding
  AND CODE_CLASS = p_codeClass;