0
SELECT FIELD1, FIELD2...
FROM VIEW1
WHERE ID IN (SELECT DISTINCT ID FROM TABLE1 WHERE NAME_FIELD LIKE '%ABC%')
ORDER BY FIELD1, FIELD2;
При выборе из вида одним из условий является WHERE ID IN (подзапрос). Ошибка оракула, как в заголовке.Oracle: WHERE ID IN() однострочный подзапрос возвращает более одной строки
Но если я сначала запустил подзапрос, а затем заменил подзапрос возвращаемыми идентификаторами, он работает.
Или, если я подключил подзапрос внутри запроса просмотра, он также работает.
Что я сделал не так? Спасибо.
Что делать, если вы пытаетесь 'выбрать * из VIEW1'? – Aleksej
Спасибо @Aleksej, я заметил проблему. Это подзапрос в представлении. Проблема качества данных. – Cal
Когда вы проверяете условие IN, выберите DISTINCT не помогает - скорее, это больно. выберите DISTINCT намного дороже, чем простой SELECT. Попробуйте в обоих направлениях и посмотрите, какая из них работает лучше. – mathguy