比较多个条件sql server

时间:2017-06-19 03:21:38

标签: sql sql-server sql-server-2008 sql-server-2012

我有两个显示以下数据的表

表1

Number Time  CID
 001    24    1
 002    12    1
 003    25    2
 004    7     2

范围表2

 Time1 Time2  CID   PhoneNumber
 7      12    1      333
 24     99    null   300 
 7      24    null   301
 7      12     2     345

必填结果

 Number Time  PhoneNumber
 001    24    300
 001    24    301
 002    12    333
 002    12    301
 003    25    300
 004    7     345
 004    7     301
范围表中的

CID“NULL”表示检查时间范围,并且包括所有CID。其中CID值与表1中的CID相比可用。

2 个答案:

答案 0 :(得分:0)

你可以Ken 2个像这样的表

James

演示链接:http://rextester.com/IDKHA81401

答案 1 :(得分:0)

SELECT 
tb1.Number
,tb1.[Time]
,tb2.PhoneNumber
FROM table1 tb1
INNER JOIN table2 tb2 ON tb1.CID = ISNULL(tb2.CID, tb1.CID) 
AND tb1.[Time] BETWEEN tb2.[Time1] AND tb2.[Time2]
ORDER BY tb1.Number

我希望它对你有用。