MySQL보기 : 계산 된 필드의 기본값을 0으로 어떻게 설정합니까?
-
19-09-2019 - |
문제
다음 명령문을 사용하여 뷰에서 백분율 계산을 만듭니다.
둥근(((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)
제휴하지 않습니다 StackOverflow