Stack Overflowの質問に答えようとしていますが、答えをテストして、正しいかどうかを確認したいと思います。ただし、Oracleがないため、 sqlfiddle.com を使用しています。
クエリは次のとおりです。 http://sqlfiddle.com/#!4/b18a2/11 。
結果はどこで確認できますか?結果は '1
'(従業員1)になります。
画面の下部に結果が表示されます。ただし、クエリはレコードを返しません(テーブルを作成しましたが、データを挿入していません)。したがって、結果は表示されません。
Sathyaからの回答に加えて、クエリにはいくつかの問題があります。
次のようなデータを挿入する必要があります。
Insert into employees (Employee, Name, Email)
Values (1, 'joebloggs','[email protected]');
とにかくいくつかの%
サインを連結する必要があるので、あなたのクエリはとにかく動作するとは思わない、このクエリは動作します
Select Employee
From Employees
Where email like '%' || name || '%';
また、名前列のデータ型をchar(25)
からvarchar(25)
にchar(25)
を使用して変更する必要がありますと思う。一致します。
このタイプのことは常にデータに依存します。あなたは正しいです、それはちょっと一つの言葉として名前を持っているスタンジです。これを回避するには、クエリを変更して、期間中に電子メールアドレスを分割する必要があります。
あなたの挿入は次のようになります:
Insert into employees (Employee, Name, Email)
Values (1, 'joe bloggs','[email protected]');
そして、あなたの選択は次のようになります:
Select Employee
From Employees
Where Replace(email, '.' ,' ') like '%' || name || '%';
明らかにこれは、名前はFirstName{space}LastName
の形式のみであり、メールアドレスはFirstName{dot}[email protected]
の形式のみでなければならないことを意味します
データが常に指定された形式であることを100%確信がない限り、このようなことを行うのは慎重になります。