日期:2014-05-17 浏览次数:20635 次
DECLARE @keywords VARCHAR(10)
SET @keywords='张丽'
SELECT * FROM users WHERE PATINDEX('%'+@keywords+'%',name)>0 ORDER BY PATINDEX('%'+@keywords+'%',name)
------解决方案--------------------
create table tb(mname varchar(10))
insert into tb values('张丽丽')
insert into tb values('张丽')
insert into tb values('张丽理')
insert into tb values('张丽群')
go
select * from tb where mname like '%张丽%' order by len(mname) , mname
drop table tb
/*
mname
----------
张丽
张丽理
张丽丽
张丽群
(所影响的行数为 4 行)
*/
------解决方案--------------------
select *
from tb where mname like '%张丽%' order by isnull(abs(unicode('丽') - unicode(substring(mname,charindex('张丽',mname)+2,1))),0),len(mname)
mname
----------
张丽
张丽丽
dsaf张丽
张丽理
ds张丽理
张丽群
s张丽群
(7 row(s) affected)