一个表A,有tabname,colname两个字段,很多条记录
我需要从A中读取tabnam,colname作为我得where条件去查询相关内容
请教这个sql怎么写?
小弟刚用sql,请详细解答
谢谢!!!

解决方案 »

  1.   

    一个表A,有tabname,colname两个字段,表中有很多条记录
    现在需要编写一个语句,以tabname的值作为编写语句得from条件,而colname的值作为where的条件
    请教这杨sql怎么写?
    比如表A,tabname表示表名,colname就是这个表的字段名称
    tabname   colname
    table1    col1
    table1    col2
    table2    col3
    table2    col4
    现在要写一条这样的sql
    select * from 'table1' where 'col1' is not null
      

  2.   

    类似这样的语句exec ('select * from '+@table1+' where ['+@col1+'] is not null')
      

  3.   

    declare @tb table(tabname varchar(20),colname varchar(20))
    insert into @tb(tabname,colname)
    select 'sysobjects' ,'name'declare @sql varchar(1000)
    set @sql = (select ' select * from ' + tabname + ' where ' + colname + ' is not null '  from @tb)
    exec(@sql)
      

  4.   

    还有问题要请教下
    @sql 这个语句查询出来是个结果集
    exec提示
    服务器: 消息 512,级别 16,状态 1,行 2
    子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
    怎么办?