sqlのIN句で範囲を使用する方法はありますか。SQL IN句でのbetweenの使用
よう私は列の値を持つシナリオを持っているユーザは、例えば、値を入力
BIN_1_1
111111 - 222222
。 111134と入力した値が列の値の範囲内にあるかどうかを確認する必要があります。
IN文を使用してその中で使用する方法はありますか?
FOR i in (select * from V_CUS_SEG_BIN_RANGE) LOOP
IF v_input1 IN
(REGEXP_SUBSTR(i.bin_1_1, '[^-]+', 1, 1), REGEXP_SUBSTR(i.bin_1_1, '[^-]+', 1, 2)
THEN
dbms_output.put_line('Duplicate!');
END LOOP;
値はRegExで区切られていますが、その間にある値が範囲内にあるかどうかを比較するために使うことができます。
いいえ、それは 'in'の仕組みではありません。単に '> ='と '<='を使用してください。 –
> =と<=をどのように埋め込むのですか? –
'111111'と' 222222'が 'INT'の別々の列にあった方がはるかに簡単です。そのままでは、値が '111111 - 222222'となるようなものがあれば、非常に壊れやすい方法を作るための多くの方法があります。 –