根据匹配的位置从通配符搜索中获取结果

时间:2017-07-16 01:58:28

标签: sql postgresql

我想根据字符串中的位置来搜索文本搜索。在字符串开头找到的那些匹配首先出现,依此类推。如果我的描述不清楚,我到目前为止所尝试的内容可能有所帮助。

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

这是迄今为止我能想到的最好的。我的直觉说它可能不是有效的,它确实没有像我想的那样解决问题。

1 个答案:

答案 0 :(得分: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")

按您要搜索的字符串的位置排序。