Sql server SQL Server:在英国邮政编码单位字段中的字符之间搜索

Sql server SQL Server:在英国邮政编码单位字段中的字符之间搜索,sql-server,Sql Server,作为邮政编码查找的解决方案,我将邮政编码数据库拆分为一个单独的列,用于区域、地区、部门和单位。我甚至把可能出现在地区中的角色分开,比如W1A和W1B中的A和B等 我想搜索像B46 3BA这样的邮政编码,并尽可能返回以下详细信息 目前使用的SQL查询是 SELECT StationID, FromPostcode, ToPostcode, FromPostCodeArea, FromPostCodeDistrict, FromPostCodeDistrictChar,

作为邮政编码查找的解决方案,我将邮政编码数据库拆分为一个单独的列,用于区域、地区、部门和单位。我甚至把可能出现在地区中的角色分开,比如W1A和W1B中的A和B等

我想搜索像B46 3BA这样的邮政编码,并尽可能返回以下详细信息

目前使用的SQL查询是

SELECT     
    StationID, FromPostcode, ToPostcode, FromPostCodeArea, 
    FromPostCodeDistrict, FromPostCodeDistrictChar, 
    FromPostCodeSector, FromPostCodeUnit,
    ToPostCodeArea, ToPostCodeDistrict, 
    ToPostCodeDistrictChar, ToPostCodeSector, ToPostCodeUnit
FROM
    Station
WHERE     
    (FromPostCodeArea = 'B') 
    AND (3 BETWEEN FromPostCodeSector AND ToPostCodeSector) 
    AND (46 BETWEEN FromPostCodeDistrict AND ToPostCodeDistrict)
由于遗留应用程序的原因,我的主要问题是无法访问Select查询,只能更改
WHERE
子句。我只需要它返回stationid3321的单行

但我完全不知道该怎么做

根据Jamie的建议,答案是sql

SELECT     
    StationID, FromPostcode, ToPostcode, FromPostCodeArea, 
    FromPostCodeDistrict, FromPostCodeDistrictChar, 
    FromPostCodeSector, FromPostCodeUnit,
    ToPostCodeArea, ToPostCodeDistrict, 
    ToPostCodeDistrictChar, ToPostCodeSector, ToPostCodeUnit
FROM
Station
WHERE     
    (FromPostCodeArea = 'B') 
    AND (3 BETWEEN FromPostCodeSector AND ToPostCodeSector) 
    AND (46 BETWEEN FromPostCodeDistrict AND ToPostCodeDistrict)
    AND ('B46 3BA' BETWEEN FromPostCode AND ToPostCode)

似乎在2000个随机邮政编码的测试中发挥了作用。

不会
并且FromPostcode和ToPostcode之间的'B46 3BA'会起作用吗?
有趣。。。乍一看,我看不出它不起作用的原因。你能用它创建一个SQLfiddle来拥有一个游戏场地吗?感谢JamieD77,在一些邮政编码上试用过它,这似乎对其他的AND也有效。需要在大范围内进行试验。