我想一条语句实现select * from (SELECT TA.FLDTABLENAME FROM TSM_ENTITY_CONFIG TA WHERE TA.FLDTAG = '996003'),这样语法有问题我也知道为什么。我想问的是有什么语法可以一条语句实现,我不想两次打开数据库,如果两次就是如下当然可以实现:SELECT TA.FLDTABLENAME FROM TSM_ENTITY_CONFIG TA WHERE TA.FLDTAG = '996003' --结果是个表名 TPR_ROLES
select * from TPR_ROLES --在上面语句的查询结果的到得表中查找,这样可以得到TPR_ROLES中的记录

解决方案 »

  1.   

    可以的。
    就是子查询。
    select * from (SELECT TA.FLDTABLENAME FROM TSM_ENTITY_CONFIG TA WHERE TA.FLDTAG = '996003') TPR_ROLES
      

  2.   

    可以调用 execute 存储过程来拼装SQL语句,楼上的做法不是当做表名来处理的。
    但是拼装 sql 语句,可能不是一条SQL语句就能完成的,不知道楼主能不能接受。
      

  3.   

    lz的意思是从查询出来的表名那个表中再进行查询,相当于
    SELECT TA.FLDTABLENAME FROM TSM_ENTITY_CONFIG TA WHERE TA.FLDTAG = '996003'
    得到表名TPR_ROLES,然后
    select * from TPR_ROLES;
    1楼查出来的结果应该还是TA.FLDTABLENAME这个字段吧
      

  4.   

    动态sql文可以,静态的不清楚啊
      

  5.   


    这个应该不行,sql不能直接执行动态的表名的,用动态sql执行可以参考execute immediate