我有一个表说“Table1”,其中有大量数据存储在列名“Value”下,我有另一个表“Table2”,它有“from”和“to”列。我想表演一个 “表1”的列“值”之间的“之间”操作和操作数将来自“表2”的“从”和“到”列。
例如:
Table1 Value
-------
10
11
12
13
14
15
Table2 from to
--------------
1 3
4 10
5 15
operations to be performed: select value from Table1 where value between 1 and 3
select value from Table1 where value between 4 and 10
select value from Table1 where value between 5 and 15
输出将是这三个操作的结合。
P.S其中没有共同的专栏。
答案 0 :(得分:1)
我认为这就是你所追求的。它会返回Table1
中与Table2
中的范围匹配的任何值。
DECLARE @ t1 table(value int) DECLARE @ t2表(fr int,t int,iname varchar(20))
INSERT INTO @T1
VALUES
(10)
,(11)
,(12)
,(13)
,(14)
,(15)
INSERT INTO @t2
VALUES
(1, 3, 'First')
,(4, 10, 'Second')
,(5, 15, 'Third')
SELECT
t1.value, t2.iname
FROM
@t1 t1
INNER JOIN
@t2 t2
ON t1.Value BETWEEN t2.fr and t2.t
返回:
10 Second
10 Third
11 Third
12 Third
13 Third
14 Third
15 Third
10
显示两次,因为它匹配两个条件。您可能需要在选择中添加DISTINCT
。