Оставить соединение на основе условия - PullRequest
0 голосов
/ 19 февраля 2019
  <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 имеет столбцы countryCode, страна TBLUSERCOUNTRY2 имеет столбцы countryId, страна

user.value может быть либо 'US', либо 1, если это US, первое LEFT JOIN вернет результатыесли он равен 1, второй вернет результаты

, поэтому я хочу запустить первое соединение, если user.value - строка, и второе, если user.value - int

* 1007.* Работает так, как есть, выдает целочисленную ошибку

1 Ответ

0 голосов
/ 20 февраля 2019

добавление 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>
...