T SQL Case语句与之间显示ALL

时间:2013-02-05 10:12:53

标签: sql tsql case between

我认为我在这里尝试不可能,但由于我对SQL的了解有限,我需要一些帮助来看看我能做些什么。

我的问题是我正在处理非常糟糕的数据,我需要能够链接和拆分数据然后加入。

例如我正在使用的2个表

TABLE 1
---------
From    To  Street Name
5       10  ADAMS WAY


TABLE 2
-----------
Number
1
2
3
4
5
6
7
8
9
10

我想要的输出是

from    To  StreetName  Number
5       10  ADAMS WAY   5
5       10  ADAMS WAY   6
5       10  ADAMS WAY   7
5       10  ADAMS WAY   8
5       10  ADAMS WAY   9
5       10  ADAMS WAY   10

到目前为止,我已经能够把它放在一起了

SELECT *,
CASE
When T1.From = T2.NO
    THEN ???? 'What do i do here'
    END as Table 'What do i do next to get the rows to show'
From
T1
FULL JOIN
Numbers 
ON
T1.AFrom = T2.NO

我知道这可能是一个很长的镜头,但任何帮助都会受到赞赏。

由于

3 个答案:

答案 0 :(得分:4)

也许:

SELECT [from], 
       [to], 
       streetname, 
       number 
FROM   t1 
       LEFT OUTER JOIN t2 
                    ON t2.number >= t1.[from] 
                   AND t2.number <= t1.[to] 

SQL-Fiddle

答案 1 :(得分:1)

从表1中选择* t1,表2 t2 其中t2.Number介于t1。[From]和t1。[To]

之间

请注意,列FROM必须像[From]一样编写,因为它是一个保留关键字

答案 2 :(得分:1)

试试这个,

SELECT *
FROM table1, table2
WHERE num >= table1.[from]
AND num <= table1.[to];
相关问题