我创建了一个计算列,但它给了我一个空值的行。如果我添加另一个计算字段,它会添加2个空行,依此类推。
我的目标是获得具有单个值的单行。没有空。
代码:
SELECT
CLIENT_CODE,
( CASE WHEN CLITBP.TBPCODIGO=101 THEN COALESCE( CLITBP.TBPDESC2,0) ELSE NULL END) TAB101
FROM
CLIENT
GROUP BY 1,2
输出错误
预期输出
答案 0 :(得分:1)
如果您希望每个客户端代码占一行,那么GROUP BY
中只能有一个密钥。也许这就是你想要的:
SELECT CLIENT_CODE,
MAX(CASE WHEN CLITBP.TBPCODIGO = 101 THEN COALESCE(CLITBP.TBPDESC2, 0) END) as TAB101
FROM CLIENT
GROUP BY CLIENT_CODE;