select *
from a, b, c
where b.xx = a.xx(+)
and a.dd = c.dd
and a.RowID in
('AAAOpwAA8AAAD4BAB+', 'AAAOpwAA8AAAD4BAB8', 'AAAOpwAA8AAAD4BAB7',
'AAAOpwAA8AAAD4BAB6', 'AAAOpwAA8AAAD4BAB5', 'AAAOpwAA8AAAD4BAB4',
'AAAOpwAA8AAAD4BAB3', 'AAAOpwAA8AAAD4BAB2', 'AAAOpwAA8AAAD4BAB1',
'AAAOpwAA8AAAD4BAB0', 'AAAOpwAA8AAAD4BABx', 'AAAOpwAA8AAAD4BABv',
'AAAOpwAA8AAAD4BABt', 'AAAOpwAA8AAAD4BABs', 'AAAOpwAA8AAAD4BABr',
'AAAOpwAA8AAAD4BABq', 'AAAOpwAA8AAAD4BABp', 'AAAOpwAA8AAAD4BABo',
'AAAOpwAA8AAAD4BABn', 'AAAOpwAA8AAAD4BABm')
and a.dd = 30912555
这个语句比较奇怪,在sqlplus下执行返回一条结果,在pl/sql developer里执行返回20条结果
如果把d.dd=30912555 去掉在sqlplus和pl/sql developer里执行都返回20条结果,其实rowid in(xxx)里的dd就是等于这个值。
注:a和j 都是hash分区表。
大家有没有遇到过这种情况?
[ 本帖最后由 strong_sjhi 于 2010-5-25 15:43 编辑 ] |