在Oracle数据库中多重子查询的使用
代码如下:
SELECT T.*, ROWNUM RN
FROM (SELECT B.*,
NVL(A.AMOUNT, 0) AMOUNT,
V.FULLNAME,
DECODE(SHARE_TYPE, 1, '***', 0, '%%%') SHARE_TYPE
FROM (SELECT COUNT(S.COMMENTS) AMOUNT,
P.BO_PROBLEM_MANAGE_ID BO_PROBLEM_MANAGE_ID
FROM BO_SHARE_COMMENTS S, BO_PROBLEM_SHARE P
WHERE P.BO_PROBLEM_SHARE_ID = S.APPID(+)
GROUP BY P.BO_PROBLEM_MANAGE_ID) A,
BO_PROBLEM_SHARE B,
V_USER_ORG V
WHERE B.BO_PROBLEM_MANAGE_ID = A.BO_PROBLEM_MANAGE_ID(+)
AND B.CREATE_USERID = V.USERID
AND B.SHARE_STATUS = '2'
ORDER BY B.CREATE_DATE) T
上面代码运行时,会报错如下:
看代码看了很多遍还是没有发现错误,然后就是各种子查询拆开运行还是没有发现错误.
附上问题所在的图片:
问题说明:在B.*中有SHARE_TYPE,后面又有SHARE_TYPE的字段导致运行SQL的时候区分不了字段.建议解决方法,字段重命名,或者不使用全表字段.