select distinct a.noteno as 件号 from B inner join A on b.noteno=a.noteno

解决方案 »

  1.   

    select noteno as 件号 from A表
      

  2.   

    select distinct a.noteno as (select DISSTR from B表 where FIELDNAME=a.noteno )
      from B inner join A on b.noteno=a.noteno
      

  3.   

    declare @sql varchar(8000)
    select * into #tmp from
    (select a.NOTENO,c.*   
     from A表 a 
     ,(select [name] from syscolumns where id=object_id('A表'))b
     left join B表 c 
     on c.fieldname=b.name)a
     set @sql=''
      select @sql='(case disstr when '''+disstr+''' then noteno end) ['+disstr+']'
             from (select * from #tmp)a
       
      exec('select '+@sql+' from #tmp')
      

  4.   

    测试OK
    declare @sql varchar(8000)
    select * into #tmp from
    (select a.NOTENO,c.*   
     from A表 a 
     ,(select [name] from syscolumns where id=object_id('A表'))b
     left join B表 c 
     on c.fieldname=b.name)a
     set @sql=''
      select @sql='(case disstr when '''+disstr+''' then noteno end) ['+disstr+']'
             from (select * from #tmp)a
       
      exec('select '+@sql+' from #tmp')
    drop table #tmp
      

  5.   

    同意  chinaandys(执著追随DELPHI)
      

  6.   

    declare @sql varchar(8000)
    set @sql=''
    select @sql=@sql+','+FIELDNAME+' as '+DISSTR from t1
    set @sql=stuff(@sql,1,1,'')
    exec('select '+@sql+' from t')
      

  7.   

    select distinct B.noteno as 件号 from A,B where A.noteno=B.noteno
      

  8.   

    create table A表 (noteno varchar(20),manager varchar(30),wdate datetime)
    insert A表 select '001','张三',getdate()
    union all select '002','李四','2003-5-13'
    union all select '003','王五','2006-7-2'create table B表 (fieldname varchar(20),disstr varchar(50))
    insert B表 select 'noteno','件号'
    union all select 'wdate','完成时间'declare @sql varchar(8000)
    set @sql=''
    select @sql=@sql+a.[name]+' as ['+isnull(b.disstr,a.[name])+'],' from syscolumns a
    left join B表 b 
    on a.[name]=b.fieldname
    where a.id=object_id('A表')
    order by a.colidselect @sql=left(@sql,len(@sql)-1)
    print @sql
    exec('select '+@sql+' from A表')drop table A表,B表