1

我有一个表 SUB_Inst,列 id、low 和 high。我将如何查询返回一个新列的低和高数字,其中每个数字从低到高都有记录?

    Current table SUB_Inst
    id  low High
    1   55  63
    2   232 234
    3   4   7
    etc.

期望的结果

    id    low    High   Num_list
    1     55     63     55
    1     55     63     56
    1     55     63     57
    1     55     63     58
    1     55     63     59
    1     55     63     60
    1     55     63     61
    1     55     63     62
    1     55     63     63
    2     232    234    232
    2     232    234    233
    2     232    234    234
    3     4      7      4
    3     4      7      5
    3     4      7      6
    3     4      7      7
    etc.

我试过这样的事情:

    SELECT Low, HIGH,
    (SELECT CAST(number as varchar)+','
    FROM NUMBERS
    WHERE number >= Low and number <= High 
    FOR XML PATH(''))
    FROM SUB_Inst

但它返回了一个字段中的所有数字,这样不起作用:

    Low       High             Num_List
    24   27         24,25,26,27,
    34   36         34,35,36,
    10   17         10,11,12,13,14,15,16,17,
    34   36         34,35,36,
    65   67         65,66,67,
    502      504        502,503,504,
    56   59         56,57,58,59,

谢谢你。

4

1 回答 1

0

我想你想要这个:

SELECT id,low,high,number as Num_List
FROM SUB_Inst , NUMBERS
where low<=number and high>=number 
于 2012-08-11T04:36:39.443 回答