根据条件 oracle apex 检索数据

Retrieve data based on condition oracle apex

我有以下问题: 我想显示与指定用户具有相似名称的所有用户。 为此,我首先获取指定用户的数据并将它们存储在页面项中。

在第二步中,我创建了一个经典报告,想在这里列出所有具有相似名字的用户。

怎么说呢,比如只有这个页面item的值开头必须相同?

如果“相似性”的意思是“匹配前几个字母”,那么你

select ...
from table_of_users u
where substr(:P1_USER_NAME, 1, 3) = substr(u.user_name, 1, 3)  --> match first 3 letters

但是,也许您想要考虑另一种方法并使用 UTL_MATCH 包。例如(Scott 的 EMP table 的交叉(自身)连接):

SQL>   SELECT a.ename,
  2           b.ename,
  3           UTL_MATCH.jaro_winkler_similarity (a.ename, b.ename) similarity
  4      FROM emp a CROSS JOIN emp b
  5  ORDER BY similarity DESC
  6  /

ENAME      ENAME      SIMILARITY
---------- ---------- ----------
SMITH      SMITH             100
MILLER     MILLER            100
ALLEN      ALLEN             100
FORD       FORD              100
JAMES      JAMES             100
<snip>
JAMES      JONES              76
JONES      JAMES              76
JAMES      ADAMS              73
CLARK      BLAKE              73
BLAKE      CLARK              73
<snip>
SCOTT      MARTIN             45
JAMES      MARTIN             41
MARTIN     JAMES              41
TURNER     ALLEN              41
ALLEN      TURNER             41
FORD       JAMES               0
FORD       MILLER              0
MILLER     WARD                0
MILLER     SCOTT               0
<snip>

在您的示例中,例如

select ...
from table_of_users u
where utl_match.jaro_winkler_similarity(:P1_USER_NAME, u.user_name) > 80; -- match more than 80%