首頁 > 資料庫 > mysql教程 > 如何根據公共鍵合併SQL中帶有NULL值的行?

如何根據公共鍵合併SQL中帶有NULL值的行?

Mary-Kate Olsen
發布: 2025-01-01 11:01:11
原創
217 人瀏覽過

How Can I Merge Rows with NULL Values in SQL Based on a Common Key?

如何在SQL 中合併行

問題:

考慮一個包含以下數據的表:

FK Field1 Field2
3 ABC NULL
3 NULL DEF

目標是從表格中檢索合併行,其中Field1 和Field2 值針對相同的FK 進行組合:

FK Field1 Field2
3 ABC DEF

解:

要實現此結果,可以使用聚合函數。聚合函數忽略 NULL 值,允許合併非 NULL 值。例如,可以使用下列查詢(在 SQL Server Express 2008 R2 中測試):

SELECT
    FK,
    MAX(Field1) AS Field1,
    MAX(Field2) AS Field2
FROM
    table1
GROUP BY
    FK;
登入後複製

MAX 函數用於從按 FK 分組的行中選擇一個值。可以使用檢索分組行中單一值的任何聚合函數。

範例資料與結果:

考慮以下範例資料:

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
登入後複製

因此,行被有效合併,合併Field1 和Field2 欄位中相同FK 的非NULL值。

以上是如何根據公共鍵合併SQL中帶有NULL值的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板