日期:2014-05-17 浏览次数:20495 次
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)