<sql id = "users">
SELECT * FROM TBLUSERS user
LEFT JOIN TBLUSERCOUNTRY1 user_c1 on user_c1.code = user.value
LEFT JOIN TBLUSERCOUNTRY2 user_c2 on user_c2.id = user.value
</sql>
TBLUSERCOUNTRY1 имеет столбцы код страны, страна TBLUSERCOUNTRY2 имеет столбцы countryId, country
user.value может быть либо «US», либо 1, если это US, первое LEFT JOIN вернет результаты, если оно равно 1, второе вернет результаты.
поэтому я в основном хочу запустить первое соединение, если user.value - это строка, а второе, если user.value - это int
Запуск так, как он выдает целочисленную ошибку





добавление TO_CHAR исправило это
<sql id = "users">
SELECT * FROM TBLUSERS user
LEFT JOIN TBLUSERCOUNTRY1 user_c1 on user_c1.code = user.value
LEFT JOIN TBLUSERCOUNTRY2 user_c2 on TO_CHAR(user_c2.id) = user.value
</sql>