2017-07-16 35 views
0

我想根據在字符串中找到它們的位置來訂購文本搜索。那些在字符串開頭找到的匹配首先出現,依此類推。如果我的描述不清楚,或許我迄今嘗試的內容將有所幫助。根據匹配的地方從通配符搜索中訂購結果

Select "BANK", "ACH" from "FI" where "ACH" like '1119%' 
    Union All 
    Select "BANK", "ACH" from "FI" where "ACH" like '%1119%' 

這是迄今爲止我所能想到的最好的。我的直覺說它可能不是有效的,它並不像我想的那樣解決問題。

回答

2

你可以這樣做:

Select "BANK", "ACH" 
from "FI" 
where "ACH" like '%1119%' 
order by (case when "ACH" like '1119%' then 1 else 2 end); 

或者,這裏是另一種方式,是簡單的:

order by position('1119' in "ACH") 

該訂單由您正在搜索的字符串的位置。

+0

非常感謝你!我認爲職位職能真的能夠滿足最好的需求。我結束了ORDER BY職位(「LACH」中的'1119'),「LACH」 – DaOneTwo