ホームページ >データベース >mysql チュートリアル >集計関数を使用して SQL で NULL 値を含む行を結合する方法
質問:
列 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 サイトの他の関連記事を参照してください。