PostgreSQL - 案例什么时候从不同的模式获取数据?

时间:2018-03-01 09:27:22

标签: sql postgresql

我的情况看起来像这样 - 我正在使用postgres数据库,ERP应用程序有大量的SQL查询,我甚至不能把这个查询放在这里,但这不是问题我只需要一个建议。

  • 我有查询wchich获取有关订单号,日期等的信息 上。有模式g和h - 它们有相同的命名表,但是 不同的数据。

  • 在架构g的一个表中,我的列wchich可以是1或0.

  • 现在我需要检查此查询,如果此值为0 - 那么我需要 从g架构的表中获取数据,当它是1时 - 从h模式获取。

类似的东西:

SELECT data FROM g.table
CASE WHEN data=0
     THEN leave it as it is
     WHEN data=1
     THEN get data from h schema

是否有可能?一些功能可能或其他解决方案? 感谢

2 个答案:

答案 0 :(得分:2)

你的问题很模糊,所以我的答案也是如此:

SELECT CASE g."table".data
          WHEN 0 THEN g."table".data
          WHEN 1 THEN h."table".data
       END
FROM g."table"
   CROSS JOIN h."table";

答案 1 :(得分:0)

我认为你想要一个更像这样的结构:

select g.*
from g
where g.col = 0
union all
select h.*
from h
where exists (select 1 from g where g.? = h.? and g.col = 1);