ksbm是表名称
ksbm是里面字段 有gb,nk等select ksbm from ksbm 得到 gb nk等select * from nkb 得到的是nkb里的数据因此得到nkb那就  select ksbm+'b' from ksbm 加个B就可以 这样就能得到 gbb nkb等现在如何将这两条sql语句写成1条语句?语句1 select ksbm+'b' from ksbm 
语句2 select * from nkb

解决方案 »

  1.   

    select ksbm+'b' from ksbm 
    union all
    select * from nkb
      

  2.   

    使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式
    报错
      

  3.   

    你第二个表也要查处几列?不是一列吗?
    select ksbm+'b' from ksbm
    union all
    select col from nkb
      

  4.   

    是不是要这个declare @sql varchar(8000)
    selt @sql=''
    select @sql=@sql+'select * from '+ksbm+'b;' from ksbm 
    exec (@sql)
      

  5.   

    MASTER..xp_execresultset 'SELECT ''select * from ''+ ksbm+''b'' FROM ksbm',N'库'
      

  6.   

    没能明白你的意思语句1 select ksbm+'b' from ksbm 
    语句2 select * from nkb我们先查询出语句1里面的ksbm+b 也就是nkb等
    然后语句2根据nkb 查询nkb里面的全部数据
      

  7.   

    不明白你的意思。一般来说Table A (aa,ab,ac,ac)
    Table B (bb,ab,bc,bd)
    如果是要把结果显示在一块,两者必定有关联关系SELECT A.aa,B.* FROM A INNER JOIN B ON A.ab=b.ab这个是内联接的。
    还有Right ,Left等方法。
      

  8.   

    不知道是我写的不清楚还是怎么的
    table a(也就是ksbm )
    table b(nkb) 不是结果显示一块 是得到a里的nkb 然后 select nkb也就是b
    怎么是结果显示一起呢?
      

  9.   

    declare @s varchar(100)
    select @s= ksbm+'b' from tb where ....
    exec('select * from @s')
      

  10.   

    ..姐姐 能不能不用存储过程?
    如果用存储过程 能不能详细点?
    类似这样的?
    ALTER proc selectAll
    @s varchar(100)
    as
    select @s= ksbm+'b' from tb where ....
    exec('select * from @s')
      

  11.   

    不是没关联 语句1 查询表1字段 语句2 根据表1的字段查出信息
    然后把2个合成1个这2张表 没有主外键什么的 也没相关ID 就是语句1的字段nkb 是语句2的表名
      

  12.   

    挨个查
    exec ('select * from '+ksbm+'b;' from ksbm)
    合起来查
    exec (substring('select * from '+ksbm+'b union all ' from ksbm,1,len('select * from '+ksbm+'b union all ' from ksbm)-9))
      

  13.   

    这不算是存储过程吧?这是动态sql 语句
    你的表名是从其它表中读出来的字符串,不这样写是不行的
      

  14.   

    declare @s varchar(100)
    select @s= ksbm+'b' from tb where ....
    exec('select * from @s')
     这样写有语法错误
      

  15.   


    CREATE TABLE #Ksbm
    (ksbm varchar(50))CREATE TABLE #gdd
    (aa varchar(20)  )
    CREATE TABLE #gbd
    (aa varchar(20)  )INSERT INTO #Ksbm
    SELECT '#gd'
    INSERT INTO #kSBM
    SELECT '#gb'
    update #Ksbm SET ksbm=' SELECT * FROM '+ ksbm+'d'DECLARE @Sqlstr varchar(1000)
    SET @Sqlstr=' '
    SELECT @Sqlstr= @Sqlstr+ ksbm FROM #ksbm
    PRINT @Sqlstr
    exec (@Sqlstr)