有一个SQL:
select id,pro,price From pros Where pro like '%A%B%C%'
Union
select id,pro,price From pros Where pro like '%A%' OR pro like '%B%' OR pro like '%C%' 要求对于最上面的select id,pro,price From pros Where pro like '%A%B%C%' 要总是排在第一位,下面的select id,pro,price From pros Where pro like '%A%' OR pro like '%B%' OR pro like '%C%' 则按id来倒序排
如果单纯在后面加和ORDER BY ID DESC,则会全部按ID来排,第一条也挤到下面去了。不知道高手是怎么处理的?谢谢
select id,pro,price From pros Where pro like '%A%B%C%'
Union
select id,pro,price From pros Where pro like '%A%' OR pro like '%B%' OR pro like '%C%' 要求对于最上面的select id,pro,price From pros Where pro like '%A%B%C%' 要总是排在第一位,下面的select id,pro,price From pros Where pro like '%A%' OR pro like '%B%' OR pro like '%C%' 则按id来倒序排
如果单纯在后面加和ORDER BY ID DESC,则会全部按ID来排,第一条也挤到下面去了。不知道高手是怎么处理的?谢谢
from
(
select 1 as px,id,pro,price From pros Where pro like '%A%B%C%'
Union
select 2,id,pro,price From pros Where pro like '%A%' OR pro like '%B%' OR pro like '%C%') t
order by px,id
id,pro,price
from
(
select 1 as px,id,pro,price From pros Where pro like '%A%B%C%'
union
select 2,id,pro,price From pros Where pro like '%A%' OR pro like '%B%' OR pro like '%C%') t
order by
px,id
from
(
select 1 as px,id,pro,price From pros Where pro like '%A%B%C%'
Union
select 2,id,pro,price From pros Where pro like '%A%' OR pro like '%B%' OR pro like '%C%')
tt
order by px,id
Union
select * from(
select top 999999 id,pro,price From pros Where pro like '%A%' OR pro like '%B%' OR pro like '%C%' order by id)T
select id,pro,price,0 as ord From pros Where pro like '%A%B%C%'
Union
(select id,pro,price,1 as ord From pros Where pro like '%A%' OR pro like '%B%' OR pro like '%C%')
order by ord ASC,id DESC