Это наталкивается иллюстрирует на примере, что я думаю, что должен работать, но не:Как выбрать в выбрать, где внутренний выбор подстрока возврата результата
select * from TABLE_A where KEY in (
select substr(DYNAMIC_KEY,3) from TABLE_B where DYNAMIC_KEY like '$$%' and RECORD_ID='104251893783388824');
В основном, внутренний оператор выбора возвращает набор результатов с префиксом «$$». Это используется как ключ поиска в TABLE_A, который не содержит префикса $$ в ключе.
Если я вручную запустить внутреннюю инструкцию:
select substr(DYNAMIC_KEY,3) from TABLE_B where DYNAMIC_KEY like '$$%' and RECORD_ID='104251893783388824'
Скопируйте первый результат, скажем '8462928318772288542' и запустить внешний оператор выбора
select * from TABLE_A where KEY = '8462928318772288542'
Это работает.
Однако, если я побежал, это как выбор в (select ...) statement, я не получаю результата.
Edit:
База данных, используемая здесь Oracle 10g.
Колонка DYNAMIC_KEY в TABLE_B является VARCHAR2
Ключевой столбец в TABLE_A является ЧАР 32
Какую базу данных вы используете? –
Используемая здесь база данных Oracle 10g – lsiu