ホームページ >データベース >mysql チュートリアル >SQL の NULL 値を最後に確認された非 NULL 値に置き換える方法は?

SQL の NULL 値を最後に確認された非 NULL 値に置き換える方法は?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-03 16:32:40801ブラウズ

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

SQL での Null 値の管理: Null 値を以前の既知の値に置き換える

SQL データベースを操作する際の一般的な課題は、Null 値に遭遇することです。これは、欠落しているデータまたは不明なデータを表す可能性があります。データの整合性と分析の精度を確保するには、NULL 値を適切に処理することが重要です。

問題ステートメント:

日付と数値の 2 つの列があるテーブルを考えます。行の数値列に 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。