在查询中组合两组 [英] Combining two sets in query
本文介绍了在查询中组合两组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好
我有2个表如下:
t1
1     10
1 10
2 15
2 15
3 14
3 14
******
t2
a 11
a 11
b 9
b 9
c 16
c 16
d 20
d 20
我想找到t1附近的对象t2,它只给我一条每条记录的值,例如我们发现a对1
i want to find near objects of t1 with t2 which only gives me one value per record for example if we find a is good for 1
它不应该再考虑b为1。
it should not consider b for 1 again.
非常感谢。
推荐答案
一种方法是为两个表中的每一行生成一个唯一的行号,然后加入它。
One way would be to generate a unique row number for each row in both tables, then join on it.
CREATE TABLE t1(id int, value int);
INSERT INTO t1 VALUES
(1, 10),
(2, 15),
(3, 14);
CREATE TABLE t2(id char(1), value int);
INSERT INTO t2 VALUES
('a', 11),
('b', 9),
('c', 16),
('d', 20);
GO
SELECT *
FROM
(SELECT *, ROW_NUMBER() OVER(ORDER BY id) rn
FROM t1) first
FULL OUTER JOIN
(SELECT *, ROW_NUMBER() OVER(ORDER BY id) rn
FROM t2) sec
ON first.rn = sec.rn
这篇关于在查询中组合两组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文