簡體   English   中英

根據條件左聯接

[英]Left Join based on condition

  <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

以它的方式運行會引發整數錯誤

添加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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM