22,210
社区成员
发帖
与我相关
我的任务
分享
--如果每个表qty(qty+name)能区分大小
select m1.* , m2.name , m2.qty from
(
select t1.name , t1.qty , t2.name , t2.qty from
(
select * , id = (select count(1) from tb1 where qty < t.qty or (qty = t.qty and name < t.name)) + 1 from tb1 t
) t1
full join
(
select * , id = (select count(1) from tb1 where qty < t.qty or (qty = t.qty and name < t.name)) + 1 from tb2 t
) t2
on t1.id = t2.id
) m1
full join
(
select * , id = (select count(1) from tb1 where qty < t.qty or (qty = t.qty and name < t.name)) + 1 from tb3 t
) m2
on m1.id = m2.id
--如果每个表qty(qty+name)不能区分大小
select * , id = identity(int,1,1) into t1 from tb1
select * , id = identity(int,1,1) into t2 from tb2
select * , id = identity(int,1,1) into t3 from tb3
select m1.* , m2.name , m2.qty from
(
select t1.name , t1.qty , t2.name , t2.qty from t1 full join t2 on t1.id = t2.id
) m1 full join t3 m2 on m1.id = m2.id