请问这样的SQL语句要如何写, 两个or的优先问题
一个表中,对一个 nvarchar字段进行模糊查询,例如
select * from table where longstring like '%aa% ' or name like '%ab% '
请问如何让符合 "aa "的结果在最前面然后让符合 "ab "的结果在后面啊?? 现在这个语句查询的结果是符合2个条件的结果都混合一起出现了,即使我order by longstring 也没有任何变化,请各位帮助,谢谢
------解决方案--------------------select
*
from
table
where
longstring like '%aa% ' or name like '%ab% '
order by
(case when charindex( 'aa ',longstring)> 0 then 1 else 2 end)
------解决方案--------------------select * from table where longstring like '%aa% ' or name like '%ab% '
Order by case when Charindex( 'aa ',longstring)> 0 then 0 else 1 end
------解决方案-------------------- declare @a table(name varchar(20))
insert @a
select 'aaabbb '
union all
select 'aaaaaa '
union all
select 'aabaaa '
select * from @a where charindex( 'aa ',name)> 0 or charindex( 'ab ',name)> 0
/*
(所影响的行数为 3 行)
name
--------------------
aaabbb
aaaaaa
aabaaa
(所影响的行数为 3 行)
*/
------解决方案--------------------一个表中,对一个 nvarchar字段进行模糊查询,例如
select * from table where longstring like '%aa% ' or name like '%ab% '
请问如何让符合 "aa "的结果在最前面然后让符合 "ab "的结果在后面啊?? 现在这个语句查询的结果是符合2个条件的结果都混合一起出现了,即使我order by longstring 也没有任何变化,请各位帮助,谢谢
select * from table where longstring like '%aa% '
union
select * from table where longstring like '%ab% '
------解决方案--------------------select * from table where longstring like '%aa% ' or name like '%ab% '
order by (case charindex( 'aa ',longstring)> 0 then 1 else 2 end)