문제

다음 명령문을 사용하여 뷰에서 백분율 계산을 만듭니다.

둥근(((Surveys.RejectedAsAdvertising / Surveys.Responses) * 100), 0) AS PercentageAdvertising

기본적으로, 나는 응답 수를 특정 질문 (이 경우 광고로 간주되는)으로 나누어 총 응답 수로 나눕니다.

결국, 나는 5 가지 가능한 설문 조사 응답 각각에 대해 백분율을 보여주는 열이 있습니다 ( "광고입니까?", "지루합니까?"등).

이것은 완벽하게 작동하지만 조정하고 싶은 한 가지가 있습니다. 응답 유형 (예 : 광고)에 투표가 없으면 계산 된 필드는 널 값을받습니다.

내보기를 정의 할 때 기본값 0을 어떻게 지정할 수 있습니까?

감사.

도움이 되었습니까?

해결책

당신은 필요합니다 coalesce 거기에. 첫 번째가 아닌 인수를 선택하므로 다음과 같은 것이 필요합니다.

coalesce(
    round(
        ((Surveys.RejectedAsAdvertising / Surveys.Responses) * 100)
        ,0)
    ,0)
    AS PercentageAdvertising

그런 다음 라운드의 결과가 Null이면 대신 0이됩니다.

다른 팁

Coalesce 매개 변수가 null 일 때 평가하는 ANSI 표준 방법이기 때문에 선호되는 접근법입니다. ANSI이기 때문에 동일한 구문이 Oracle, SQL Server, Postgres 등에서 지원되므로 쿼리가 필요한 경우 데이터베이스간에 더 쉽게 포트 할 수 있습니다.

COALESCE(round(((Surveys.RejectedAsAdvertising / Surveys.Responses) * 100),0) AS PercentageAdvertising, 0)

ifnull MySQL 특정 구문입니다.

IFNULL(round(((Surveys.RejectedAsAdvertising / Surveys.Responses) * 100),0) AS PercentageAdvertising, 0)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top