我有兩張桌子
第一個表
id f1
1 a
1 b
2 c
3 d
3 e
第二張表
id f2
1 k
2 m
2 n
3 p
而且我要
id f1 f2
1 a k
1 b
2 c m
2 n
3 d p
3 e
結果是一個具有兩個獨立列(f1 和 f2)的表共享一個參考列(id),當列(f1 或 f2)具有較少數量的具有相同代碼的記錄時,單元格為空。
uj5u.com熱心網友回復:
在 SQL Server 中,您可以使用row_number視窗函式來生成可用于連接兩個表的另一列。
我對 Access 不夠熟悉,不知道它是否支持視窗功能,或者是否有特定于訪問的等效項。
-- your data tables
with t1 as (select * from (values (1,'a'),(1,'b'),(2,'c'),(3,'d'),(3,'e')) t(id,f1))
,t2 as (select * from (values (1,'k'),(2,'m'),(2,'n'),(3,'p') ) t(id,f2))
-- your data with sequence counter for each ID
,t1Seq as (select *, seq = row_number() over (partition by id order by f1) from t1)
,t2Seq as (select *, seq = row_number() over (partition by id order by f2) from t2)
-- generate your desired rowset by using a full join
-- on the id and the generated sequence number within each id value
select id = coalesce(t1Seq.id,t2Seq.id)
,t1Seq.f1
,t2Seq.f2
from t1Seq
full join t2Seq on t2Seq.id = t1Seq.id and t2Seq.seq = t1Seq.seq
;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/488980.html
下一篇:訪問應用程式中的自動更新
