>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 이전의 NULL이 아닌 값으로 행의 NULL 값을 채우는 방법은 무엇입니까?

SQL Server에서 이전의 NULL이 아닌 값으로 행의 NULL 값을 채우는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-03 15:35:38992검색

How to Fill NULL Values in a Row with the Previous Non-NULL Value in SQL Server?

행의 NULL 값을 이전에 알려진 값으로 바꾸는 방법

문제:

행의 NULL 값을 이전에서 마지막으로 알려진 값의 값으로 바꿔야 합니다. 날짜. 예를 들어 날짜 열에 "1," "2," "3," "4," "5" 값이 포함되고 숫자 열에 "3," "NULL," "5," "NULL" 값이 포함된 경우 ," 및 "NULL"의 경우 NULL 값은 각각 "3", "5" 및 "5"로 대체되어야 합니다.

해결 방법(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

설명:

  • ISNULL 함수는 Val 열이 NULL인지 확인합니다. 그렇다면 하위 쿼리의 값을 반환합니다.
  • 하위 쿼리는 ID 열이 현재 행의 ID 열보다 작은 @Table 테이블에서 NULL이 아닌 상위 1개의 값을 선택합니다.
  • ORDER BY ID DESC 절을 사용하면 NULL이 아닌 가장 최근 값이 반환됩니다.

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

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