如何合并表格一行中的兩列?
塔爾貝
| ID | 規則ID | 物件ID | 型別ID |
|---|---|---|---|
| 1 | 9 | 56 | 1 |
| 7 | 9 | 43 | 3 |
| 24 | 9 | 73 | 2 |
| 31 | 9 | 94 | 3 |
| 33 | 9 | 20 | 4 |
| 45 | 9 | 1008 | 8 |
| 46 | 9 | 1009 | 7 |
結果
| 規則ID | 物件ID | 型別ID | 物件 ID2 | 型別 ID2 |
|---|---|---|---|---|
| 9 | 56 | 1 | 43 | 3 |
| 9 | 73 | 2 | 94 | 3 |
| 9 | 20 | 4 | 1008 | 8 |
| 9 | 1009 | 7 | 空值 | 空值 |
uj5u.com熱心網友回復:
使用 row_number() 和模數來確定列。那么對于條件聚合來說就變成小事了。
例子
Select RulesID
,ObjectID = max( case when Col=1 then ObjectID end)
,TypeID = max( case when Col=1 then TypeID end)
,ObjectID2 = max( case when Col=0 then ObjectID end)
,TypeID2 = max( case when Col=0 then TypeID end)
From (
Select *
,Grp = (1 row_number() over (partition by RulesID order by ID)) / 2
,Col = row_number() over (partition by RulesID order by ID) % 2
From YourTable
) A
Group By RulesID,Grp
結果

uj5u.com熱心網友回復:
外鍵應該可以完成這項作業,您可以在此處了解更多資訊
https://www.w3schools.com/sql/sql_foreignkey.asp
然后你可以使用內連接:https : //www.w3schools.com/sql/sql_join_inner.asp
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/341128.html
標籤:sql-server
