ホームページ > データベース > mysql チュートリアル > SQL で NULL を以前の非 NULL 値に置き換える方法は?

SQL で NULL を以前の非 NULL 値に置き換える方法は?

Susan Sarandon
リリース: 2025-01-03 02:45:38
オリジナル
661 人が閲覧しました

How to Replace NULLs with Previous Non-NULL Values in SQL?

SQL での欠損値の取得: NULL を以前の既知の値で置き換える

データ テーブルには、NULL で表される欠損値が含まれることがよくあります。分析を最適化し、データの整合性を維持するには、NULL を意味のある値に置き換えることが重要になります。一般的な戦略の 1 つは、各 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
ログイン後にコピー

このクエリ次のように動作します:

  • 内部クエリは、ORDER BY を含むサブクエリを使用して、各行の最後の非 NULL 値を取得します。
  • 外部クエリは、ID 列を使用してテーブルをそれ自体と結合します。
  • NULL をチェックするために ISNULL 関数が使用されます。現在の行の Val 列が NULL の場合、サブクエリによって取得された値に置き換えられます。

以上がSQL で NULL を以前の非 NULL 値に置き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート