ORA-01427: однострочный подзапрос возвращает более одной строки - по простому запросу - PullRequest
0 голосов
/ 08 мая 2019

Следующий простой запрос SQL генерирует ошибку ORA-01427 при поиске определенных номеров объектов.

SELECT OBJ

FROM A.TABLEA

WHERE (OBJ ='XXXXXX');

Запрос работает нормально, за исключением случаев, когда вы выбираете OBJ, где есть другая строка / строки OBJ с соответствующим суффиксом A 'XXXXXXA'. то есть запрос для OBJ = 'XXXXXXA' работает нормально, но запрос для OBJ = 'XXXXXX' приводит к ошибке, альтернативно запрос для OBJ = 'XXXXXY' работает нормально, когда нет соответствующего OBJ = 'XXXXXYA'

Есть ли способ обработать / избежать ошибки, когда он выберет первую / последнюю / случайную единственную строку?

И, идя дальше, вместо поиска конкретных объектов, которые я хочу искать в диапазоне дат, где мне нужно присоединиться к другой таблице, чтобы получить дату, ошибка будет отображаться, если существует «XXXXXX» с соответствующим «XXXXXXA». в диапазоне дат. Смотрите код ниже,

SELECT
t1.*,
t2.OBJ,
t2.DATE

FROM
A.TABLEA t1
LEFT OUTER JOIN
A.TABLEB t2

ON (t1.OBJ = t2.OBJ)

WHERE
(t2.DATE BETWEEN TO_DATE ('2019/04/01', 'yyyy/mm/dd')
AND TO_DATE ('2019/04/30', 'yyyy/mm/dd');

Есть ли способ обработать / избежать ошибки в этом коде, чтобы заставить его выбрать 1 строку?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...