a,b肯定会有一个,不过不知是哪一个。

解决方案 »

  1.   

    看不懂意思,猜测你是想用union all , in , not in 之类的来实现.
      

  2.   

    如果不存在a,取b的值,否则取a的值select decode(a, null, b, a) from table
      

  3.   

    我的意思是这样的
      table的结构可能是 a、b两个字段组成,也可能是由a、c两个字段组成,b和c只可能是其中的一个,但是现在我不知道字段名是b还是c,
      如果用select a,b from table的话,如果表是由字段名是a、c组成的,那么肯定会报错,同理如果用select a,c from table而表是由a,b组成的话,也会报错,
      如何写一SQL能在不确定表中字段具体名称的情况下列出其各字段的值呢?(不是要用*的方式,要将字段名写在select中)
       
      
     
      

  4.   

    用动太语句,查询表结果。结合select * from  user_tab_columns这个。。
      

  5.   

    看下面的例子,在scott.emp上进行的测试。假设emp表上有B字段,就取empno,否则取ename字段。
    select A.empno
      ,nvl(a.your_need, b.your_need) your_need
      from 
    (
    select  empno
           ,cast(
            (
    case when (select count(1) from user_tab_columns where table_name = 'EMP' and column_name = 'B') > 0 then empno
                else null
            end
            ) 
            as varchar2(7)
            ) your_need
      from emp
    )
       A,
    (
    select empno
           ,case when (select count(1) from user_tab_columns where table_name = 'EMP' and column_name = 'ENAME') > 0 then ENAME
                else null
           end your_need
      from emp
    ) B
    where A.empno = B.empno
      

  6.   

    搞错,看来非得用pl/sql来写了