2012-06-01 57 views
1

我有2个表。让只说其记录和数字SQL Server 2000中最长的前缀匹配

的records.number包含了一些,我想找到numbers.prefix最长可能相关的前缀在SQL Server 2000

我怎么会去这样做呢?

例如

records.number = '0841234567' 

numbers.prefix = '084' 
       '0841' 
       '08412' 

我希望选择08412

回答

4
select top 1 N.Prefix 
from Numbers as N 
    inner join Records as R 
    on R.Number like N.Prefix+'%' 
order by len(N.Prefix) desc 

更新。

Records中每个数字的最长前缀。

select R.Number, 
     (select top 1 N.Prefix 
     from Numbers as N 
     where R.Number like N.Prefix+'%' 
     order by len(N.Prefix) desc) as Prefix 
from Records as R 

SE-Data

+0

你是人中的神。 – Imsopov

+0

有没有办法可以同时处理所有记录? – Imsopov

+1

@Imsopov - 当然... –