Ceci est illustre assailli par un exemple que je pense devrait fonctionner, mais qui ne fonctionne pas:Comment sélectionner dans select où la sélection intérieure est une sous-chaîne du résultat de retour
select * from TABLE_A where KEY in (
select substr(DYNAMIC_KEY,3) from TABLE_B where DYNAMIC_KEY like '$$%' and RECORD_ID='104251893783388824');
Fondamentalement, l'instruction select intérieure renvoient une ensemble de résultats qui avait un préfixe '$$'. Ceci est utilisé comme une clé de recherche dans TABLE_A qui ne contient pas le préfixe '$$' dans la clé.
Si je lance manuellement l'instruction intérieure:
select substr(DYNAMIC_KEY,3) from TABLE_B where DYNAMIC_KEY like '$$%' and RECORD_ID='104251893783388824'
Copiez le premier résultat, laissez-dire '8462928318772288542' et exécutez l'instruction select externe
select * from TABLE_A where KEY = '8462928318772288542'
Cela fonctionne. Cependant, si je cours est une instruction select (select ...), je n'obtiens aucun résultat.
Modifier:
La base de données utilisée ici est Oracle 10g.
La colonne DYNAMIC_KEY dans TABLE_B est un VARCHAR2
La colonne KEY TABLE_A est CHAR 32
Quelle base de données utilisez-vous? –
La base de données utilisée ici est Oracle 10g – lsiu