While循环100个数字



我想创建SQL While循环,在该循环中,我可以根据12位数字在两列范围内提取数千个字段。例如

如果我在一个表中有3列

MasterKeyNumber---BB000Q000000
StartingNumber BB0000000001
EndingNumber - BB000Q00000022

我想创建一个while循环,它将从起始号码和结束号码中提取所有号码,并显示哪个也将显示主密钥号码

例如,

MasterKeyNumber---BB000Q000000
StartingNumber BB0000000001
StartingNumber BB0000000002
StartingNumber BB0000000003
StartingNumber BB0000000004
StartingNumber BB0000000005
StartingNumber BB0000000006
StartingNumber BB0000000007
StartingNumber BB0000000008
StartingNumber BB0000000009
StartingNumber BB0000000010
StartingNumber BB0000000011
StartingNumber BB0000000012
StartingNumber BB0000000013
StartingNumber BB0000000014
StartingNumber BB0000000015
StartingNumber BB0000000016
StartingNumber BB0000000017
StartingNumber BB0000000018
StartingNumber BB0000000019
StartingNumber BB0000000020
StartingNumber BB0000000021
StartingNumber BB0000000022
EndingNumber - BB000Q00000022

通过使用"Between"AND"之类的语句,我只能提取一个或两个范围,但如果我有显示多个不同数字和多个不同范围的范围,我该怎么做?

例如,我的查询一次提取一个范围

Select MasterKey, StartingNumber, EndingNumber, from TabelName
where StartingNumber Between 'BB0000000001' AND 'BB0000000022'

这只给出了这个范围,但我有数千个不同的数字,它们将有多个范围,如BB0000000004到BB00000000010,BB0000000045到BB0000000066,BB0000000088到BB0000000099

我的while循环查询应该是什么才能获得所有范围?

提前感谢

如果您将SQL查询看作循环之类的形式,那么您将面临许多死胡同。相反,考虑数据集以及它们之间的关系。

考虑获得你想要返回的所有范围:

SELECT masterkey, startingnumber, endingnumber FROM tablename;

现在我们有了要查询的每个开始和结束编号。我们现在想得到所有出现在这个范围内的起始数字,这是万能钥匙。因此:

SELECT
    tablename.masterkey,
    tablename.startingnumber,
    myRanges.startingNumber,
    myRanges.endingNumber
FROM
    (SELECT masterkey, startingnumber, endingnumber FROM tablename) myRanges
    INNER JOIN tablename ON
        tablename.startingnumber BETWEEN myRanges.StartingNumber and myranges.EndingNumber

这里使用该初始查询来设置开始和结束范围,以便再次查询表。我们返回您感兴趣的masterkeystartingnumber,然后返回导致我们提取该特定startingnumberstartingnumberendingnumber

相关内容

最新更新