web-dev-qa-db-ja.com

フィールドの部分文字列値に基づいて2つのテーブルを結合するにはどうすればよいですか?

SQLに問題があります。従業員とクラスインストラクターの2つのテーブルを結合したいと思います。条件は、従業員が「u0871457」のようなunid列を持っているのに対し、クラスのインストラクターは「00871457」としてEmplIdを持っていることです。

EmplIdの最初の文字を「u」に置き換えて、unidからの文字列と一致するように結合したいだけです。どうやってやるの?私はこれまでこれを試しました:

select e.name, i.name
from  Employee e
inner join Instructor i on SUBSTR(e.id,1, LENGTH(e.id )) = SUBSTR(i.id,1, LENGTH(i.id ))

しかし、これは空白の結果セットになります。

どんな助けでもありがたいです。御時間ありがとうございます!

5
userx
select e.name, i.name
 from  Employee e
 inner join Instructor i on SUBSTR(e.id, 2, LENGTH(e.id) - 1) = SUBSTR(i.id, 2, LENGTH(i.id) - 1)

DBは1ベースのインデックスを使用します。

1