我有一列category,有3个值可能是“pos”、“neg”和“zero”。
我正在寻找一个查询,当它是pos时显示为正,当它是neg时显示为负,当它是0时显示为零。
在下面的查询中,当它为零时,我将得到空值。有没有办法不选择零?

SELECT distinct(category),
case when nature='POS' then 'POSITIVE'
     when nature='NEG' then 'NEGATIVE'
end as category_rm
FROM table_h;

最佳答案

在case表达式中添加else作为else 'zero',因此对于不匹配的zeroPOS值,它将返回NEG

SELECT distinct category,
       case when nature = 'POS' then 'POSITIVE'
            when nature = 'NEG' then 'NEGATIVE'
            else 'zero'
       end as category_rm
FROM table_h;

有没有办法不选择零?
如果是这样,在WHERE子句中避免
SELECT distinct category,
       case when nature = 'POS' then 'POSITIVE'
            when nature = 'NEG' then 'NEGATIVE'
       end as category_rm
FROM table_h
WHERE nature != 'zero';

关于postgresql - postgresql:如何查询“大小写……否则什么都没有”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56807401/

10-12 18:24