あなたの提案と支援をありがとうmathguy。あなたが提供した例は、問題のほぼ完全な説明です。そうは言っても、この問題を説明するためにあなたのテキストを使用および編集しました。
18656、16380、16424 の形式のカンマ区切りの数字を含む文字列を受け取りました (これを param1 と呼びます)。文字列にはコンマと数字のみが含まれます。mytable には、18656.01.02、10.02.02、16380.02.03、16424.05.66、16424.55.23.14 などの値を持つ t という名前の列があります。param1 のすべてのコンマ区切りの数字に一致するすべての行を選択したいと考えています。ここで、列 t の最初の数値コンポーネントは 18656、16380、16424 のようになります。この場合、regexp_substr を使用する方法はありますか。
param1 = 18656、16380、16424 の場合、次のように動作します。
select * from mytable where t.mycolumn IN
(
(SELECT regexp_substr(:param1,'[^,]+', 1, level) as NUMLIST
FROM DUAL
CONNECT BY regexp_substr(:param1, '[^,]+', 1, level) IS NOT NULL)
);
t.mycolumn = 18656.00.01, 16380.09.34, 16424.023.8 からデータを検索する場合のワイルドカードの使用方法 検索条件として LIKE を使用できますか? 可能であれば、例を提供してください。明らかに、以下は機能しませんが、解決策を見つけたいと思っています。
select * from mytable where t.mycolumn LIKE
(
(SELECT regexp_substr(:param1||'%','[^,]+', 1, level) as NUMLIST
FROM DUAL
CONNECT BY regexp_substr(:param1||'%', '[^,]+', 1, level) IS NOT NULL)
);