如:SELECT xt_zlb.dh, xt_ddb.fwz, test.c
FROM xt_zlb INNER JOIN
      xt_ddb ON xt_zlb.ddid = xt_ddb.ddid INNER JOIN
      xt_qyb ON xt_ddb.qyid = xt_qyb.qyid CROSS JOIN
      test列test.c储存的内容为xt_ddb.sx, xt_qyb.qym想得到如下的结果:将test.c储存的内容作为查询内容
SELECT xt_zlb.dh, xt_ddb.fwz, xt_ddb.sx, xt_qyb.qym
FROM xt_zlb INNER JOIN
      xt_ddb ON xt_zlb.ddid = xt_ddb.ddid INNER JOIN
      xt_qyb ON xt_ddb.qyid = xt_qyb.qyid

解决方案 »

  1.   

    declare @sql varchar(8000)SELECT @sql = test.c
    FROM xt_zlb INNER JOIN
          xt_ddb ON xt_zlb.ddid = xt_ddb.ddid INNER JOIN
          xt_qyb ON xt_ddb.qyid = xt_qyb.qyid CROSS JOIN
          test
    set @sql = 'SELECT xt_zlb.dh, xt_ddb.fwz,'+@sql+'FROM xt_zlb INNER JOIN
          xt_ddb ON xt_zlb.ddid = xt_ddb.ddid INNER JOIN
          xt_qyb ON xt_ddb.qyid = xt_qyb.qyid'
    exec(@sql)
      

  2.   

    TO yrwx001() :SELECT xt_zlb.dh, xt_ddb.fwz, test.c
    FROM xt_zlb INNER JOIN
          xt_ddb ON xt_zlb.ddid = xt_ddb.ddid INNER JOIN
          xt_qyb ON xt_ddb.qyid = xt_qyb.qyid CROSS JOIN
          test
    -------------的结果如下:--------------------------------
     dh                fwz           c
    旧体委楼12栋  红旗中服务站  xt_ddb.sx, xt_qyb.qym  
    大园北2栋     红旗中服务站   xt_qyb.qym  
    大园南3栋     红旗中服务站  xt_ddb.sx, xt_qyb.qym每行c的值都不同 如果用你那种方法只能获得第一行的c值
    我是想实现相对每一行test.c储存的内容作为查询内容
    有更好的实现方法吗???
      

  3.   

    create function fn (@ddid int,@qyid int)
    returns varchar(8000)
    as
    begin
    declare @sql varchar(8000)SELECT @sql = test.c
    FROM xt_zlb INNER JOIN
          xt_ddb ON xt_zlb.ddid = xt_ddb.ddid INNER JOIN
          xt_qyb ON xt_ddb.qyid = xt_qyb.qyid CROSS JOIN
          test where xt_zlb.ddid = @ddid and xt_ddb.qyid = @qyid
    return @sql 
    end
    go
    declare @sql varchar(8000)select @sql = 'SELECT xt_zlb.dh, xt_ddb.fwz,'+dbo.fn(xt_zlb.ddid,xt_ddb.qyid)+'FROM xt_zlb INNER JOIN
          xt_ddb ON xt_zlb.ddid = xt_ddb.ddid INNER JOIN
          xt_qyb ON xt_ddb.qyid = xt_qyb.qyid'
    FROM xt_zlb INNER JOIN
          xt_ddb ON xt_zlb.ddid = xt_ddb.ddid INNER JOIN
          xt_qyb ON xt_ddb.qyid = xt_qyb.qyid
    exec(@sql)
      

  4.   

    谢谢 yrwx001() 
    还是达不到想要的结果,参数是不定的,不单单xt_ddb.sx, xt_qyb.qym
    有没有替换之类的实现方法呢?直接把test.c这列的内容替换成查询内容
      

  5.   

    相同的问题:
    http://community.csdn.net/Expert/topic/5628/5628172.xml?temp=.8142816