比如‘1,2,3,4’--->‘aa,bb,cc,dd’ 
A表中有一个串为‘1,2,3,4’它代表B表的ID编号,我想通过这个串,得到B表的名称,如果写SQL?

解决方案 »

  1.   

    放在.NET下没有人回答,只好放这里了,求版主别删除,问题解决后即结帖。
      

  2.   

    意思是A表的‘1,2,3,4’对应B表的‘aa,bb,cc,dd’ ?
      

  3.   

    B表ID NAME
    1  AA
    2 BB
    3 CC
    4 DD
      

  4.   

    不是很明白你要的结果?replace?
      

  5.   

    比如它只是一个字段里的值,那么如何去取呢? A: IDSTR,OTHER 
    1,2,3,4    XXX 
    B:ID  NAME 
      1  AA 
      2  BB 
      3  CC 
      4  DD 
    A---B通过A的IDSTR以及B的ID来连接。预期得到的结果是: 
    AA,BB,CC,DD XXX 
      

  6.   

    这个用动态SQL好做点,不过遇到B表数据比较多的情况下,性能不理想
      

  7.   


    create table #t1
    (instr varchar(10)
     )insert into #t1
    select '1,3,5'
    union all
    select '2,3,1'create table #t2
    (
    idx int,
    iname varchar(5)
    )insert into #t2
    select 1,'红'
    union all
    select 2,'黄'
    union all
    select 3,'蓝'
    union all
    select 4,'白'
    union all
    select 5,'黑'declare @sql varchar(200),@i int,@j int
    select @i=1,@j=count(1) from #t2
    set @sql='select 'while @i<=@j
      begin
        set @sql=@sql+'replace('
        set @i=@i+1
      endset @sql=@sql+'instr'select @sql=@sql+','+cast(idx as varchar(5))+','''+iname+''')' from #t2
    set @sql=@sql+' from #t1'exec(@sql)--只实现了功能,动态的做法就是这样