【发布时间】:2015-07-14 06:02:05
【问题描述】:
我正在尝试找出一个查询,该查询将有效地允许我根据前缀列表检查特定数字。
我的表结构是这样的
表 1
MobileNumber
408726172
307612535
408642517
111824374
表 2
Prefix
408
3076
现在您可以看到一些 MobileNumber 以 408 和 307 开头,前缀表包含 408 和 3076。有没有一种方法可以在不使用循环的情况下检查 SELECT 语句中的有效前缀?
我的想法是一个看起来像这样的 SQL 查询
SELECT MobileNumber FROM Table1 WHERE THE FIRST PART OF THE NUMBER MATCHES ANY OF THE Prefixes in Table2
我只是不明白我该怎么做
【问题讨论】:
-
MobileNumber是什么数据类型? -
@dotnetom MobileNumber 是一个与 Prefix 相同的 varchar
-
您确实应该将这两个值分开,而不是像这样与您的架构发生冲突。由于您在同一列中具有区号(或前缀)和站号,因此您在一个交叉路口拥有多条数据,从而违反了 1NF。把它分开,它会变得容易得多。
标签: sql sql-server