我正在撰寫的 SQL 查詢的一部分處理通用元資料表。因此,我正在旋轉所需的元素以適應我需要它們的格式。我正在使用“案例”進行操作,我不確定這是問題還是問題,但是此子查詢的結果采用以下格式:
╔════╦═══════╦═══════╗
║ ID ║ DATA1 ║ DATA2 ║
╠════╬═══════╬═══════╣
║ 1 ║ 1 ║ (NULL)║
║ 1 ║(NULL) ║ 2 ║
║ 1 ║(NULL) ║ (NULL)║
║ 2 ║(NULL) ║ (NULL)║
║ 2 ║ 2 ║ (NULL)║
║ 3 ║(NULL) ║ (NULL)║
║ 4 ║(NULL) ║ (NULL)║
╚════╩═══════╩═══════╝
不是最漂亮的輸出,但我想我可以用“GROUP BY ID”修復它以簡化輸出。如下:
╔════╦═══════╦═══════╗
║ ID ║ DATA1 ║ DATA2 ║
╠════╬═══════╬═══════╣
║ 1 ║(NULL) ║ (NULL)║ ?????
║ 2 ║(NULL) ║ 2 ║
║ 3 ║(NULL) ║ (NULL)║
║ 4 ║(NULL) ║ (NULL)║
╚════╩═══════╩═══════╝
也許我對 GROUP BY 的理解從根本上是錯誤的,但我沒想到 ID 1 的結果。現在我正在尋找一種組合行的方法。它應該看起來像這樣:
╔════╦═══════╦═══════╗
║ ID ║ DATA1 ║ DATA2 ║
╠════╬═══════╬═══════╣
║ 1 ║ 1 ║ 2 ║
║ 2 ║(NULL) ║ 2 ║
║ 3 ║(NULL) ║ (NULL)║
║ 4 ║(NULL) ║ (NULL)║
╚════╩═══════╩═══════╝
因此,簡單地將行“添加”在一起就足夠了,因為對于一個 ID,單個資料列中永遠不會有兩個值。所以它總是“數字 NULL”。有沒有什么方法可以輕松做到這一點?我覺得這應該不是什么大問題,但我想不出解決方案。
uj5u.com熱心網友回復:
使用聚合查詢:
SELECT ID, MAX(DATA1) AS DATA1, MAX(DATA2) AS DATA2
FROM yourTable
GROUP BY ID
ORDER BY ID;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/438131.html
上一篇:SQL聯合和加入
下一篇:根據資料框中的列選擇sql中的列
