0

ユーザー番号を含むOracle DBがあります。お気に入り:

Prename    ID   
-------    -------
Tom        u2300   
Tom        xu2300   
Julian     ue2301   
Anet       xue2302   

同じID「unumber」/「uenumber」および「xnumber」/「xuenumber」を持つすべてのユーザーを検索します。両方が存在する必要があります。u/uenumber または xu/xue のみを持つすべてのユーザーは問題ありません。

クエリについて助けが必要です。どうもありがとう。

4

2 に答える 2

0

このようなものをお探しですか?

PRENAME ID      ID2
Anet    xue2302 null
Julian  ue2301  null
Tom     u2300   xu2300

はいの場合、これはクエリです:

SELECT u1."Prename", u1.ID as ID, u2.ID as ID2 
FROM users u1
LEFT OUTER JOIN users u2 ON u2.ID = concat('x',u1.ID)
WHERE u1.ID LIKE 'u%'
UNION
SELECT u1."Prename", u1.ID as ID, u2.ID as ID2 
FROM users u1
LEFT OUTER JOIN users u2 ON u2.ID = replace(u1.ID,'x')
WHERE u1.ID LIKE 'x%' AND u2.ID is null

SQLFIDDLE を参照してください: http://www.sqlfiddle.com/#!4/81bb1/13/0

于 2013-08-21T14:51:22.140 に答える
0

名前を探しているだけですか?それともIDも?

SELECT "Prename"
  ,MIN(CASE WHEN ID LIKE 'u%' THEN ID END) u_id
FROM users 
GROUP BY "Prename"
HAVING 
   MIN(CASE WHEN ID LIKE 'x%' THEN SUBSTR(ID,2) END)
 = MIN(CASE WHEN ID LIKE 'u%' THEN ID END)

ディーター

于 2013-08-21T15:05:59.200 に答える