Postgresql posgresql从一列中选择两个不同的数据作为两列

Postgresql posgresql从一列中选择两个不同的数据作为两列,postgresql,Postgresql,我需要从stockcurrent中选择两个id作为两个不同的列(id1,id2),第一个是points.id='244',第二个是points.id='191'。但结果面向最后一个where子句,并基于该语句只填充一列 我想我也遇到了类似的问题: 唯一的区别是,在上面的例子中,他的最后一个where子句在范围内,而我的不在范围内。在我看来,这就是我的声明不起作用的原因: 选择 (采购订单id='244'然后st.id结束时的情况)id1, (po.id='191'然后st.id结束时的情况)i

我需要从
stockcurrent
中选择两个id作为两个不同的列(id1,id2),第一个是points.id='244',第二个是points.id='191'。但结果面向最后一个
where
子句,并基于该语句只填充一列

我想我也遇到了类似的问题:
唯一的区别是,在上面的例子中,他的最后一个
where
子句在范围内,而我的不在范围内。在我看来,这就是我的声明不起作用的原因:

选择
(采购订单id='244'然后st.id结束时的情况)id1,
(po.id='191'然后st.id结束时的情况)id2
来自stockcurrent街
po.id上的内部连接点po=st.point
其中po.id='244';
我的结果:

预期结果:

因此,我需要找到一个解决方案,用id来填充这两列,而不是唯一一个在这种情况下给出“244”结果的列。提前感谢。
stockcurrent
表格示例:

+-------+-------+
|  id   | point |
+-------+-------+
| 23414 |   191 |
| 12493 |   191 |
| 16121 |   170 |
| 24325 |   191 |
| 51232 |   244 |
| 11255 |   244 |
| 56572 |   244 |
| 16123 |   170 |
+-------+-------+
+-----+------+------+
| id  | comp | type |
+-----+------+------+
| 191 |   96 |    2 |
| 307 |   96 |    1 |
| 244 |   97 |    0 |
| 311 |   98 |    0 |
| 170 |  109 |    0 |
+-----+------+------+
点的示例
表:

+-------+-------+
|  id   | point |
+-------+-------+
| 23414 |   191 |
| 12493 |   191 |
| 16121 |   170 |
| 24325 |   191 |
| 51232 |   244 |
| 11255 |   244 |
| 56572 |   244 |
| 16123 |   170 |
+-------+-------+
+-----+------+------+
| id  | comp | type |
+-----+------+------+
| 191 |   96 |    2 |
| 307 |   96 |    1 |
| 244 |   97 |    0 |
| 311 |   98 |    0 |
| 170 |  109 |    0 |
+-----+------+------+
将查询更改为:

select
(case when po.id='244' then st.id end) id1,
 (case when po.id='191' then st.id end) id2
from stockcurrent st
inner join points po on po.id = st.point
where po.id in ('244', '191');


样本数据最好以如下方式表示。有关如何创建美观的表的一些提示,请参阅。如果您在po.id=st.point上加入,则stoccurrent中每行只能有一个point.id值,因此我不知道您在问什么。
po.id在('244','191')中的位置
@bobflux好的,也许join是不正确的,我尝试的整个代码都是错误的方向,但是有没有其他方法来实现我想要的?可能是子查询或联合,不幸的是,我对SQL的信心很差。我需要创建一个包含两列的select语句,一个用于id,其中点为244,第二个用于191。@AdriankAver您的解决方案运行良好,实际上,它解决了问题。我一直在猜测为什么您的解决方案会给我空[null]字段,但后来意识到这只是因为我需要查找的每个id都有相应的点。这就是为什么我认为你的答案不正确。你能把它作为答案贴出来吗?