我有兩個表,比如dt1和dt2。
我想找到DT1的數據,但基於一些列DT2不匹配。(動態)LINQ:如何使用動態密鑰連接兩個數據表
我想出的方法是左連接兩個表,找到那些列與空值。
但問題是如何將它們與動態列號一起加入。
例如,如果最初我想通過N列連接它們,但是如果dt2中的列1爲空或空,那麼我想通過其餘的N-1列連接它們。
例如:
DT1:
ColA, ColB, ColC, ColD
1A 1B 1C 1D
2A 2B 2C 2D
3A 3B 3C 3D
4A 4B 4C 4D
DT2:
ColAA ColBB ColCC, ColE
1A 1B null 1E
2A 2X null 2E
3A 3B 3C 3E
null null 4C 4E
dt1 left join dt2 by ColA=ColAA, ColB=ColBB and ColC=ColCC
如果其中一個爲空,然後再加入其餘列。
預期的結果:
ColA, ColB, ColC, ColD, ColE
1A 1B 1C 1D 1E
2A 2B 2C 2D null
3A 3B 3C 3D 3E
4A 4B 4C 4D 4E
與科爾空值的數據是我想要的(2A,2B,2C,2D,NULL)
現在我只能通過固定列加入他們的行列,如何。我可以達到上述情況嗎?
非常感謝。
行1和行2中的數據是相同的。但爲什麼在預期的結果中,第1行和第2行是不同的?因爲第2行中的ColE爲空? – Mark
如果數據不存在,那麼你不能加入它,你需要某種形式的一致性,否則你將在長期運行中創建一個更大的問題 –
如果所有的行都有列ColCC null,該怎麼辦?所有行都具有相同的空列或填充值。但是我不知道哪個列會在運行時間爲空。例如,在第一輪中,對於所有行,ColCC可能爲空,而在第二輪中,對於所有行,ColAA和ColBB可能爲空。 –