我现有一个问题想问问各位大大们我有A B两表B表是A表的子表我查B表时要根据B表中nodetype字段判断是否要返回A表中再查一次我这时判断应该怎么写?如果nodetype是0的话不反回A表查询  如果为1的话则要返回A表去查

解决方案 »

  1.   

    给你个例子:
    SELECT CASE
             WHEN S.EMPNO > 7600 THEN
              (SELECT '***' || D.DNAME
                 FROM SCOTT.DEPT D
                WHERE D.DEPTNO = S.DEPTNO)
             ELSE
              ENAME
           END,
           EMPNO
      FROM SCOTT.EMP S;
      

  2.   

    2楼给你的例子是对的,如果你报错,说明你的scott(默认数据库)被修改过,导致
    SELECT '***' || D.DNAME
                 FROM SCOTT.DEPT D
                WHERE D.DEPTNO = S.DEPTNO
    出现了多条数据。
    如果要不出错很简单,加一个条件rownum=1就可以了。