繁体   English   中英

当另一列 postgreSQL 中存在重叠值时,从行中选择值

[英]Pick value from row when there is overlapping value in another column postgreSQL

抱歉,我是 SQL 新手,所以这可能是一个非常愚蠢的问题,我目前有一个表,例如:

X
一种 12345
12345
一种 12346
一种 12347
一种 12348

当y值相同时,sql中是否有一些简化功能总是选择b作为值? 这样它看起来像:

X
12345
一种 12346
一种 12347
一种 12348

您可以使用distinct on

select distinct on (y) t.*
from t
order by y, (x = 'b') desc;

这会为每个value选择一行,优先选择'b'不是其他值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM