PostgreSQL:使用case比较列之间的值



我想比较两列,A和B。

如果列A和列B共享相同的值,我希望列A有一个无值集。如果列A和列B的值不相同,我希望列A保持其原始值。

以下是我的尝试。然而,它返回";真";对于案例列中的所有条目-第A列(已更正(。

select *,
case when 'Col A' = 'Col B' 
then 'Col A' = null 
else 'Col A' = 'Col A'
end as "Col A (corrected)"
from my_table
select
case
when col_a=col_b then null
else col_a
end as col_a_corrected
from my_table

只需进行

select *,
NULLIF(col_a, col_b)
from my_table

如果col_a=col_b,则NULLIF返回null,否则返回col_a。

https://www.postgresql.org/docs/current/functions-conditional.html#FUNCTIONS-无效

相关内容

  • 没有找到相关文章

最新更新