2017-02-27 35 views
0

我试图使用AND语句CASE语句中,指的是同一件事两次:AND语句CASE PostgreSQL的内部参照类似condiitons

CASE 
WHEN col1 like A then col_A-(col_B/col_C) 
WHEN col1 like A AND sum(col2)=0 then col_D 
end as casecolumn 

但是我发现,只有第一个WHEN语句影响列,即只实现了计算1,我如何确保两种计算都适用于casecolumn?

+1

按照其他顺序进行操作,首先像AND AND,然后只是像。 – jarlh

+0

'AND'(布尔)运算符,'CASE'表达式。 – jarlh

+0

这两个计算是什么? –

回答

3

切换的条件的顺序:

CASE WHEN col1 like A AND SUM(col2) = 0 THEN calcuation2 
    WHEN coc1 like A THEN calculation1 
END AS casecolumn 

如果LIKESUM标准来第一次见面时,这个条件会触发。否则,CASE表达式将下降到更宽松的标准,以便再次匹配。

如果您想要在LIKESUM条件都为真的情况下应用两个条件的“计算”,则只需在确定该条件的值时使用它。

+0

这没有奏效。 – user124123

+0

你能解释一下'这不行吗? –

+0

OP在first THEN中同时需要计算1和计算2。就像在C中没有“break”一样。 – jarlh