找到两个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