找到兩個4字和6個字符值下面是兩個表我有工作,與表中的列沿:SQL查詢從兩個表中
**## Table 1 ##** Grantee Column w/sample data Grantee ---------- CLAT CLATX1 DJSD DJSDX3 ADKS ADKSX5 DKHS
**## Table 2 ##** Inact_ID Column w/sample data Inact_ID ---------- CLAT DJSD ADKS DKHS
用下面的查詢:
SELECT DISTINCT A.GRANTEE
FROM TABLE1 A
WHERE
EXISTS(SELECT 1
FROM TABLE2 B
WHERE A.GRANTEE= B.INACT_ID);
These are my results: CLAT DJSD ADKS DKHS
4字ID的回來了 - 不是我想要的一切(也希望6個字符的ID與4個字符的ID相關聯)
除了獲得那些4個字符的ID之外,這些4個字符ID中的一些還具有另一個ID,其具有以下命名約定 - A02WXn,其中X是常數,並且n是從0-9的數字,其是6個字符的ID。我希望能夠包含6個字符的ID,如果它與4個字符的ID一起存在。 6個字符的ID只存在於表1中。
更新:我想我可能更接近解決方案,希望這可以澄清更多我想要的結果。
SELECT A.GRANTEE FROM TABLE1 A INNER JOIN (SELECT B.INACT_ID FROM INACTIVE_USERS B) ON A.GRANTEE LIKE '%' || B.INACT_ID || '%';
(Note - This was done on Postgres, and worked, but I can't get it to run in DB2) Results from Postgres Below:(Desired Results - Both 4 character ID and 6 Character ID if exists) GRANTEE -------- CLAT CLATX1 DJSD DJSDX3 ADKS ADKSX5 DKHS
怎麼樣'... WHERE LEFT(A.GRANTEE,4)= B.INACT_ID'? – mustaccio 2014-12-05 18:08:56
Artjom B. - 感謝您的編輯。 mustaccio - 我很欣賞這個迴應!當我編輯我的WHERE CLAUSE以符合您的要求時,我會得到不正確的結果。我得到的ROWS不只是4或6個字符。我只想要4個字符的ID和相關的6個字符ID(如果存在)。 謝謝 – SkiDoo1222 2014-12-05 18:40:09
然後你需要提供更有意義的樣本數據,包括特例。我的建議可以與你現有的樣本完美配合。 – mustaccio 2014-12-05 20:06:21