SQL Server 쿼리에서 NULL 값을 0으로 바꾸기
SQL 쿼리 작업 시 특정 열에서 NULL 값을 발견하는 것이 일반적입니다. 데이터 처리 및 분석이 복잡해질 수 있습니다. SQL Server 쿼리에서 NULL 값을 0과 같은 특정 값으로 바꾸려면 ISNULL 함수를 활용할 수 있습니다.
ISNULL 함수는 잠재적으로 null이 될 수 있는 열과 대체 값이라는 두 가지 인수를 사용합니다. 귀하의 경우 처음 세 열(성공, 실패, 취소됨)의 NULL 값을 0으로 바꾸려고 합니다. 이를 달성하는 방법은 다음과 같습니다.
SELECT ISNULL(column_name, 0) AS column_alias, ...
예를 들어, 쿼리의 처음 세 열이 0인 경우 다음과 같이 수정합니다.
SELECT ISNULL(c.rundate, 0) AS 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 값이 포함되어 있어도 계산에 사용되거나 결과에 표시되기 전에 0으로 대체됩니다.
위 내용은 SQL Server 쿼리에서 NULL 값을 0으로 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!