2017-11-01 1 views
1

계산 된 열을 만들었지 만 null 값을 가진 행을 제공합니다. 다른 계산 된 필드를 추가하면 2 개의 null 행이 추가됩니다.계산 된 열의 SQL 공백이

내 목표는 하나의 값을 하나의 행을 얻을 수 있습니다. null이 없습니다.

코드 :

SELECT 
CLIENT_CODE, 
(CASE WHEN CLITBP.TBPCODIGO=101 THEN COALESCE(CLITBP.TBPDESC2,0) ELSE NULL END) TAB101 
FROM 
CLIENT 
GROUP BY 1,2 

잘못된 출력

wrong

의도 된 출력

right

+0

미래에는 이와 같은 질문을 할 때 DDL과 샘플 데이터를 포함해야합니다. 그리고 텍스트가 충분한 곳에서 이미지를 사용하지 마십시오 (예 : 이미지 대신 테이블 데이터로 코드 블록을 사용할 수 있음). –

답변

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; 
+0

그레이트 고든. 그것은 효과가있다! 고마워. 좋은 하루 되세요! –