SQL Server 쿼리에서 NULL 값 처리: 0으로 바꾸기
SQL Server 데이터베이스 작업 시 쿼리 결과에서 NULL 값이 발견될 수 있습니다. 데이터 분석을 방해합니다. 예를 들어 다음 쿼리를 고려해 보세요.
Select c.rundate, sum(case when c.runstatus = 'Succeeded' then 1 end) as Succeeded, sum(case when c.runstatus = 'Failed' then 1 end) as Failed, sum(case when c.runstatus = 'Cancelled' then 1 end) 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
이 쿼리는 두 테이블(sysjobs 및 sysjobhistory)에서 데이터를 검색하고 runstatus 열을 기반으로 계산을 수행합니다. 그러나 runstatus에 NULL 값이 있으면 쿼리가 예기치 않은 결과를 반환할 수 있습니다.
NULL을 0으로 바꾸기
SQL Server에서 NULL 값을 0으로 바꾸려면 isnull을 사용하세요. () 기능. 이 함수는 입력 값이 NULL인 경우 지정된 값을 반환합니다. 그렇지 않으면 입력 값을 반환합니다.
isnull(myColumn, 0)
주어진 쿼리에서 c.runstatus에는 NULL 값이 있을 수 있습니다. 이러한 값을 0으로 바꾸려면 다음과 같이 쿼리를 수정합니다.
Select c.rundate, sum(case when isnull(c.runstatus, 0) = 'Succeeded' then 1 end) as Succeeded, sum(case when isnull(c.runstatus, 0) = 'Failed' then 1 end) as Failed, sum(case when isnull(c.runstatus, 0) = 'Cancelled' then 1 end) 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()을 사용하면 계산을 수행하기 전에 c.runstatus의 NULL 값이 0으로 바뀝니다. 이렇게 하면 누락된 데이터가 있는 경우에도 쿼리가 정확한 결과를 반환할 수 있습니다.
위 내용은 SQL Server 쿼리에서 NULL 값을 처리하고 0으로 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!