如何从字符串到where子句中获取比较运算符



我在引用表中有数据,如<55,>60(等等),并且在源中,值将达到40,70(等等)。所以,根据参考值,我必须检查条件。

示例;

如果值参考表是<55

我在where子句中的条件是40<55

如果大于70

我的条件是条款将是

40>60

实际上,我正在检查不同文件的多规则条件。。这将是AND的条件之一。

你能给我建议一下处理它的方法吗。

提前感谢

SQL> column str format A10;
SQL> WITH ref_data
  2       AS (SELECT '<55' VAL
  3           FROM   dual
  4           UNION ALL
  5           SELECT '>60' val
  6           FROM   dual),
  7       source_data
  8       AS (SELECT 40 VAL
  9           FROM   dual
 10           UNION ALL
 11           SELECT 70 VAL
 12           FROM   dual)
 13  SELECT CASE
 14           WHEN B.val < To_number(Regexp_substr(A.val, '[[:digit:]]+')) THEN B.val
 15                                                                             ||'<'
 16                                                                             ||
 17         Regexp_substr(A.val, '[[:digit:]]+')
 18           ELSE B.val
 19                ||'>'
 20                ||Regexp_substr(A.val, '[[:digit:]]+')
 21         END str
 22  FROM   ref_data A,
 23         source_data b;
STR
----------
40<55
70>55
40<60
70>60
SQL>

最新更新