原始資料成像如下表,我想回傳Id 1和3的行。因為對于Id 1的行,一行有CodeA的資料,另一行有CodeB的資料。對于 Id 3,它在一行中有 CodeA 和 CodeB 中的資料。我不希望 Id 2 回傳的原因是因為 Id 2 的兩行都只有 CodeA 中的資料,而不是 CodeB 中的資料。
| ID | 團體 | 代碼A | 代碼B |
|---|---|---|---|
| 1 | 1 | 一種 | 空值 |
| 1 | 1 | 空值 | 一種 |
| 1 | 2 | 空值 | 一種 |
| 2 | 1 | 一種 | 空值 |
| 2 | 2 | 一種 | 空值 |
| 3 | 1 | 一種 | b |
理想的結果是:
| ID | 團體 | 代碼A | 代碼B |
|---|---|---|---|
| 1 | 1 | 一種 | 空值 |
| 1 | 1 | 空值 | 一種 |
| 1 | 2 | 空值 | 一種 |
| 3 | 1 | 一種 | b |
uj5u.com熱心網友回復:
我們可以MAX()在這里用作分析函式:
WITH cte AS (
SELECT *, MAX(CodeA) OVER (PARTITION BY Id) AS MaxCodeA,
MAX(CodeB) OVER (PARTITION BY Id) AS MaxCodeB
FROM yourTable
)
SELECT Id, [Group], CodeA, CodeB
FROM cte
WHERE MaxCodeA IS NOT NULL AND MaxCodeB IS NOT NULL;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/438765.html
