>데이터 베이스 >MySQL 튜토리얼 >SQL의 NULL 값을 마지막으로 알려진 NULL이 아닌 값으로 바꾸는 방법은 무엇입니까?

SQL의 NULL 값을 마지막으로 알려진 NULL이 아닌 값으로 바꾸는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-03 16:32:40770검색

How to Replace NULL Values in SQL with the Last Known Non-NULL Value?

SQL에서 Null 값 관리: Null 값을 이전에 알려진 값으로 바꾸기

SQL 데이터베이스 작업 시 일반적인 문제는 Null 값이 발생하는 것입니다. 이는 누락되거나 알 수 없는 데이터를 나타낼 수 있습니다. 데이터 무결성과 분석 정확성을 보장하려면 null 값을 적절하게 처리하는 것이 중요합니다.

문제 설명:

날짜와 숫자라는 두 개의 열이 있는 테이블을 생각해 보세요. 행의 숫자 열에 null 값이 있습니다. 목표는 이러한 Null 값을 이전 날짜 행에서 마지막으로 알려진 Null이 아닌 값에서 가져온 값으로 바꾸는 것입니다.

해결책:

SQL Server 사용자의 경우, 다음 쿼리는 활용:

DECLARE @Table TABLE(
        ID INT,
        Val INT
)

INSERT INTO @Table (ID,Val) SELECT 1, 3
INSERT INTO @Table (ID,Val) SELECT 2, NULL
INSERT INTO @Table (ID,Val) SELECT 3, 5
INSERT INTO @Table (ID,Val) SELECT 4, NULL
INSERT INTO @Table (ID,Val) SELECT 5, NULL
INSERT INTO @Table (ID,Val) SELECT 6, 2


SELECT  *,
        ISNULL(Val, (SELECT TOP 1 Val FROM @Table WHERE ID < t.ID AND Val IS NOT NULL ORDER BY ID DESC))
FROM    @Table t

설명:

  • 임시 테이블 @Table을 생성하여 샘플 데이터를 저장합니다.
  • ISNULL( ) Val이 null인지 확인하는 함수입니다. 그렇다면 TOP 1 하위 쿼리가 실행되어 해당 날짜에 대해 마지막으로 알려진 Null이 아닌 값을 검색합니다.
  • 하위 쿼리는 현재 행보다 ID가 작고 Null이 아닌 Val 값을 가진 행에 대해 테이블을 필터링합니다. , 그런 다음 가장 최근 값을 얻기 위해 ID별로 내림차순으로 정렬합니다.
  • 최종 결과에는 원래 번호 또는 대체 번호가 있는 모든 행이 포함됩니다. 가치가 있습니다.

위 내용은 SQL의 NULL 값을 마지막으로 알려진 NULL이 아닌 값으로 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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