>데이터 베이스 >MySQL 튜토리얼 >SQL Server 쿼리에서 NULL 값을 0으로 바꾸는 방법은 무엇입니까?

SQL Server 쿼리에서 NULL 값을 0으로 바꾸는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-31 14:29:10578검색

How to Replace NULL Values with Zero in SQL Server Queries?

SQL Server 쿼리에서 NULL 값을 0으로 바꾸기

SQL Server 쿼리에서 쿼리에 NULL 값이 있는 상황이 발생할 수 있습니다. 결과. 정확한 데이터 분석을 보장하려면 이러한 NULL 값을 0과 같은 보다 의미 있는 표현으로 바꾸는 것이 필요할 수 있습니다.

이를 달성하려면 ISNULL() 함수를 활용할 수 있습니다. ISNULL() 함수는 NULL 값을 확인하려는 표현식과 NULL 값을 바꿀 값의 두 가지 매개변수를 사용합니다.

쿼리 구문:

SELECT ISNULL(expression, 0) FROM table

예:

제공된 쿼리에는 다음과 같은 세 개의 열이 있습니다. NULL 값(성공, 실패, 취소)을 포함할 수 있습니다. 이러한 NULL 값을 0으로 바꾸려면 다음과 같이 ISNULL() 함수를 사용할 수 있습니다.

Select
  c.rundate,
  ISNULL(
    sum(case when c.runstatus = 'Succeeded' then 1 end),
    0
  ) as Succeeded,
  ISNULL(
    sum(case when c.runstatus = 'Failed' then 1 end),
    0
  ) as Failed,
  ISNULL(
    sum(case when c.runstatus = 'Cancelled' then 1 end),
    0
  ) as Cancelled,
  count(*) as Totalrun
from
  (
    Select
      a.name,
      case when b.run_status = 0 Then 'Failed'
        when b.run_status = 1 Then 'Succeeded'
        when b.run_status = 2 Then 'Retry'
        Else 'Cancelled'
      End as Runstatus,
      cast(substring(convert(varchar(8), run_date), 1, 4) + '/' + substring(convert(varchar(8), run_date), 5, 2) + '/' + substring(convert(varchar(8), run_date), 7, 2) as Datetime) as RunDate
    from
      msdb.dbo.sysjobs as a(nolock)
    inner join
      msdb.dbo.sysjobhistory as b(nolock)
    on
      a.job_id = b.job_id
    where
      a.name = 'AI' and b.step_id = 0
  ) as c
group by
  c.rundate

ISNULL()을 사용하면 성공, 실패 및 취소에 대한 결과가 항상 다음과 같이 표시되도록 할 수 있습니다. 원래 쿼리 결과에 NULL 값이 있더라도 숫자 값입니다.

위 내용은 SQL Server 쿼리에서 NULL 값을 0으로 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.