【问题标题】:SQL Server 2016 - number range in fieldSQL Server 2016 - 字段中的数字范围
【发布时间】:2017-02-08 19:38:40
【问题描述】:

我正在 SQL Server 2016 中创建一个数据库,我试图弄清楚如何将一系列数字放入一列中。

例如-

  • 街道号码 - 1000-2999
  • 街道名称 - Dixie Hwy
  • 地图代码 - 205B

我想搜索“1344 Dixie Hwy”并让它返回地图代码 205B,但我正在尝试找出创建街道编号列的最佳方法。

【问题讨论】:

    标签: sql sql-server database range sql-server-2016


    【解决方案1】:

    我认为您能做的最好的事情是拥有range_startrange_end,然后在查询中使用BETWEEN 子句。所以对于你的例子:

    Street_Number_Start - 1000
    Street_Number_End - 2999
    Street_Name - Dixie Hwy
    Map_Code - 205B
    

    select map_code
      from my_table
     where 1134 between street_number_start and street_number_end
       and street_name = 'Dixie Hwy'
    

    【讨论】:

    • 我就是这么想的。这对我来说是全新的,所以我只是想确保在我进入所有这些之前没有更好的方法。我将不得不手动输入几千行。
    • 好吧,如果您以后想到更好的方法,您可以使用查询将数据迁移到新结构。但我做了仔细检查,我没有看到真正支持数字范围作为单个值的类型。我认为您必须将其存储为字符串,然后使用非常混乱的表达式来解释它。按照这里的建议保持简单,如果需要,您可以更轻松地利用索引等。所以这就是为什么如果是我,我会走这条路
    猜你喜欢
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多