Oracle DB Query Custom Order by

dgo*_*dgo 0 sql oracle select sql-order-by sql-like

我正在寻找一种方法来完成类似于Oracle的模糊搜索.如果已经回答了这个问题,我很乐意接受一个链接,但我对Oracle很新,我甚至不确定如何快速搜索我想要的内容.

给出以下查询:

SELECT VEND_CUST_CD, LGL_NM, ALIAS_NM
FROM {{DB_NAME}}.{{DB_TABLE}}
WHERE ({{condition_1}}) AND ({{condition_2}}) AND (upper(LGL_NM) LIKE upper('%{{term}}%')
ORDER BY LGL_NM
Run Code Online (Sandbox Code Playgroud)

我想在回复中得到的是一个特定的订单.让我们想象term= ze出于此目的.

我想像这样订购结果:

  • 很多约翰逊
  • Ze bra Eaters
  • Ze ro Gravity
  • Ama ze d John
  • Bedaz ze l
  • La ze r Sex
  • Za ze w

因此,我首先得到的是开头的单词,term然后是包含term在其中的按字母顺序排列的单词列表.

我希望这很清楚.

Sal*_*n A 5

我想你可以这样订购结果:

ORDER BY CASE WHEN LGL_NM LIKE '{{term}}%' THEN 1 ELSE 2 END, LGL_NM
Run Code Online (Sandbox Code Playgroud)