like
演算子の中でクエリを使用できますか?like like operator
以下のクエリを使用しましたが、エラーが返されます。
select *
from customers
where cust_name like '%'||select name from members||'%'
like
演算子の中でクエリを使用できますか?like like operator
以下のクエリを使用しましたが、エラーが返されます。
select *
from customers
where cust_name like '%'||select name from members||'%'
以下は動作するはずのような何か:PLSQL
で
SELECT
*
FROM
customers c
WHERE 1=1
AND EXISTS
(SELECT 1
FROM members m
WHERE 1=1
AND c.cust_name LIKE '%'||m.name||'%'
)
'WHERE 1 = 1'は役に立たない。 –
@a_horse_with_no_nameそれは習慣だ - 私はいつも、最初のどこに行をコメントアウトする必要があるかの条件を入れておく。 'WHERE' –
クエリーを実行したい場合、あなたは、クエリの結果を保持する変数をdecalreする必要があります。 (1行のみで動作します)あなたは副選択にメンバーの名前の一部を定義する必要があり
DECLARE
var customers%ROWTYPE;
BEGIN
SELECT c.*
INTO var
FROM customers c
INNER JOIN members m ON c.cust_name LIKE '%' || m.name || '%';
END;
:だから、としてそれを行うことができます
select *
from customers
where cust_name like (select '%'||name||'%' from members);
同じことが複数の行で動作します(JOINので行うことができます):
select C.*
from customers C
INNER JOIN MEMBERS M ON (C.CUST_NAME LIKE '%'||M.NAME||'%');
私はサブクエリから返すために2つ以上の行があるので、2番目のものを使用しました。ありがとう。 – Nidheesh
は
などのように括弧でサブクエリを囲むのに十分です'%'のようなcust_name || (メンバーから名前を選択) ||「%」
が、これだけ機能するときのテーブル「のメンバーは、」1つのレコードのみ
あなたがメンバーから名前をフィルタリングするかを持っていますか?その場合、サブクエリを使用する – yesemsanthoshkumar