2010-03-29 3 views
1

나는 이런 식으로 뭔가 보이는 테이블이 : 나는 secondpersons 필드가 비어 있지 않은 경우, firstpersons +를 secondpersons의 모든 모든 계산하기 위해 노력하고있어sql query - 행의 값을 개별적으로 계산하는 방법은 무엇입니까?

id | firstperson | secondperson 
1 | jane doe | 
2 | bob smith | margie smith 
3 | master shifu | madame shifu 
4 | max maxwell | 

을 ... 방법이 있나요 하기 위해서?

+0

이 비어 있거나 NULL입니까? – Unreason

답변

5
SELECT SUM(CASE WHEN secondperson='' THEN 1 ELSE 2 END) FROM thetable; 
2
select sum(1 + case when secondperson <> '' then 1 else 0 end) 
from MyTable 
0

나는이 포스트 그레스 여부에 적용되는지 잘 모르겠지만, 대부분의 데이터베이스에서, 우리는 NULLS가있을 수 있음을 고려하고있는 경우 "를 secondperson 필드가 NULL이 아닌 경우"문제는 정말이었다 , 공백 값이 아닌 조건에 NULLS를 명시 적으로 포함시켜야합니다.

0

SELECT SUM (두 번째 사람 = '또는 두 번째 사람 IS NULL THEN 0 ELSE 2 END) thetable; 그 빈 가정

0

는 null가 아니고,

SELECT count(*)+count(secondperson) FROM thetable; 

가 원하는 결과를 줄 것이다 경우 다음 포스트 그레스에서 다른 시스템처럼 카운트 (필드) 분야 을 계산합니다, NULL을 의미합니다. (SQL 구문은 누락 된 데이터에 대한 사용자 지정 값보다 좋음) 또한 항목에서 이름에 숫자가있는 필드는 모두 디자인 개정 후보입니다.

관련 문제