ホームページ >データベース >mysql チュートリアル >集計関数を使用して SQL で NULL 値を含む行を結合する方法

集計関数を使用して SQL で NULL 値を含む行を結合する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-26 10:17:10906ブラウズ

How to Combine Rows with NULL Values in SQL Using Aggregate Functions?

SQL で行をマージする方法

質問:

列 FK を持つデータベース テーブルがあるシナリオを想像してください。 、フィールド 1、およびフィールド 2。テーブルは次のようなデータで構成されています:

FK Field1 Field2
3 ABC NULL
3 NULL DEF

これら 2 つの行を 1 つに結合するクエリを実行して、次の出力を生成することを目的としています:

FK Field1 Field2
3 ABC DEF

答え:

MAX などの集計関数を利用して、このデータの結合を実現できます。 SQL Server、Oracle、Jet/Access などのプラットフォームでは本質的に NULL 値を無視します。 MAX 関数を使用するサンプル クエリを次に示します。

SELECT
    FK,
    MAX(Field1) AS Field1,
    MAX(Field2) AS Field2
FROM
    table1
GROUP BY
    FK;

このクエリでは、FK 列で行をグループ化し、MAX 関数を使用して他の各列 (Field1 とフィールド 1 およびフィールド 2) の最大値を取得します。フィールド2)。 NULL 値は無視されるため、結合された行には非 NULL 値 (ABC と DEF) が返されます。

テスト データの例を次に示します。

CREATE TABLE table1 (FK int, Field1 varchar(10), Field2 varchar(10));

INSERT INTO table1 VALUES (3, 'ABC', NULL);
INSERT INTO table1 VALUES (3, NULL, 'DEF');
INSERT INTO table1 VALUES (4, 'GHI', NULL);
INSERT INTO table1 VALUES (4, 'JKL', 'MNO');
INSERT INTO table1 VALUES (4, NULL, 'PQR');

クエリの実行時このテスト データでは、次の出力が生成されます:

FK  Field1  Field2
--  ------  ------
3   ABC     DEF
4   JKL     PQR

以上が集計関数を使用して SQL で NULL 値を含む行を結合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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