PLSQL使用LIKE向后搜索字符串

时间:2016-06-09 12:52:13

标签: sql oracle sql-like

我有一个包含VARCHAR2列的视图。该列包含一个字符串 这是来自不同表的2列的串联。

例如我搜索"詹姆斯史密斯"。 我使用LIKE搜索列:

LOWER(USER_LIST.SEARCH_STRING) LIKE LOWER 'James Smith'

我得到的结果很好。 我想知道是否可以选择执行反向搜索(仍然使用LIKE)并得到相同的结果,如下所示:

    LOWER(USER_LIST.SEARCH_STRING) LIKE LOWER 'Smith James'

请注意,我知道使用正则表达式或在视图中添加其他列可以解决此问题,但我希望尽可能少地进行更改。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我希望以下答案说明您的要求。

SELECT A.NM
FROM
  (SELECT 'Avrajit Roy' nm FROM dual
  )A
WHERE lower(A.NM) LIKE lower('avrajit roy')
OR TRIM(lower(SUBSTR(a.nm,instr(a.nm,' ',1)+1,LENGTH(a.nm))
  ||' '
  ||SUBSTR(a.nm,1,instr(a.nm,' ',1)))) LIKE lower('roy avrajit');