[Oracle] & fuzzy query sorted by degree of match

select t.zh_name from psn_ins t where t.ins_id = 857 and t.zh_name like '%' || '肖锐' || '%';

Here Insert Picture Description

select t.zh_name from psn_ins t where t.ins_id = 857 and t.zh_name like '%' || '肖锐' || '%'
       order by (case when t.zh_name = '肖锐' then 1 
       				  when t.zh_name like '肖锐' || '%' then 2
                      when t.zh_name like '%' || '肖锐' then 3
                      when t.zh_name like '%' || '肖锐' || '%' then 4 
					  else 0 end);

Here Insert Picture Description

Published 107 original articles · won praise 88 · views 260 000 +

Guess you like

Origin blog.csdn.net/Code_shadow/article/details/103587332