在 Access 中扩展电话号码的范围



我有一个有电话号码的表格。 一列包含区域中的第一个数字。 下一列包含该范围内的最后四位数字。 如何为每个单独的数字创建一行?

例:
202-366-1234(电话号码来自)
下一列有 1240(电话号码到)

我想将每个电话号码放在单独的行上。所以它们看起来像这样。

202-366-1234
202-366-1235
202-366-1236
202-366-1237
202-366-1238
202-366-1239
202-366-1240

有什么想法吗?

创建典型"数字"表的变体以保存所有可能的最后四位数字,例如

[PhoneSuffix]
suffix
------
0000
0001
0002
...
9998
9999

那么对于这样的输入表

[Table1]
ID  PhoneFrom     PhoneTo
--  ------------  -------
 1  202-366-1234  1240
 2  416-555-1212  1221

您可以使用如下查询:

SELECT Left(t1.PhoneFrom, 8) & ps.suffix AS PhoneNo
FROM Table1 t1, PhoneSuffix ps
WHERE ps.suffix Between Right(t1.PhoneFrom, 4) And t1.PhoneTo

您可以使用这个不需要新表的花哨的笛卡尔(乘法)查询:

SELECT DISTINCT 
    10*Abs([Deca].[id] Mod 10)+Abs([Uno].[id] Mod 10) AS Id, 
    Left([StartNumber],8) & CStr(Val(Right([StartNumber],4))+[Factor]) AS PhoneNumber
FROM 
    msysobjects AS Uno, 
    msysobjects AS Deca
WHERE 
    (((10*Abs([Deca].[id] Mod 10)+Abs([Uno].[id] Mod 10))<=Val([EndNumber])-Val(Right([StartNumber],4))));

最新更新