号码表A,号段表B
select B.*,A.* from B inner join A on charindex(A.号码,B.号段)>0

解决方案 »

  1.   

    select b.*,a.* from a,b where a.号码 like '%'+b.号码+'%'
      

  2.   

    if not exists(select * from sysobjects where name='C')
    create table C
    (
    number nvarchar (255)
    )
    insert into C select '08514734440'
    union all select '08514734441'
    union all select '08514734442'
    union all select '085152'
    if not exists(select * from sysobjects where name='D')
    create table D
    (
    number nvarchar (255)
    )insert into D select '08514734'
    union all select '085147368'
    union all select '08515'select D.*,C.* from C inner join D on charindex(D.number,C.number)>0drop table C
    drop table D----------------------------------------------
    08514734 08514734440
    08514734 08514734441
    08514734 08514734442
    08515 085152
      

  3.   

    create view view_number
    as
    select 号段.number,号码.number from C inner join 号段 on charindex(号段.number,号码.number)>0
      

  4.   

    嗯,把 charindex(D.number,C.number)<=0
    换成 charindex(D.number,C.number) = 1 后结果对了。问题是 charindex 还不如 like 来得快。
      

  5.   

    给大家个提示,这个语句的查询效率慢在 charindex/like 上。