在查询中组合两组 [英] Combining two sets in query

查看:67
本文介绍了在查询中组合两组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好

我有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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆