34,593
社区成员
发帖
与我相关
我的任务
分享
--取匹配的最长号段:
SELECT *
FROM (
SELECT list.号码, area.号段, area.地区,
SN = ROW_NUMBER() OVER(PARTITION BY list.号码 ORDER BY LEN(area.号段) DESC)
FROM list
INNER JOIN area
ON list.号码 LIKE area.号段 + '%'
) tmp
WHERE SN = 1
--如果是手机号,只用7位号段匹配即可:
SELECT list.号码, area.号段, area.地区
FROM list
INNER JOIN area
ON list.号码 LIKE area.号段 + '%'
WHERE area.号段 LIKE '1[3458]'+REPLICATE('[0-9]',5)