select * from X
where X.a like '11%'
or X.a like '12%'
or X.a like '13%'
or ……查询结果是:
12
13
11我想让查询出来的结果是按照我select语句中like的先后顺序显示,也就是
11
12
13为什么用上面的select不行呢?
where X.a like '11%'
or X.a like '12%'
or X.a like '13%'
or ……查询结果是:
12
13
11我想让查询出来的结果是按照我select语句中like的先后顺序显示,也就是
11
12
13为什么用上面的select不行呢?
where X.a like '11%'
or X.a like '12%'
or X.a like '13%'
or ……
order by a
where X.a like '11%'
or X.a like '12%'
or X.a like '13%'
or …… ) b order by b.a嵌套一层查询在排序就好了
select * from X
where X.a like '12%'
or X.a like '11%'
or X.a like '13%'
or …… 查询结果是:
12
13
11 我想让查询出来的结果是按照我select语句中like的先后顺序显示,也就是
12
11
13 怎么修改我的select呢?
select a,rownum rn from X
where X.a like '11%'
union
select a,rownum+1 rn from X
where X.a like '12%'
select a,rownum+2 rn from X
where X.a like '13%' )
order by rn
select a,rownum rn from X
where X.a like '11%'
union
select a,rownum+1 rn from X
where X.a like '12%'
union
.
.
.
union
select a,rownum+1 rn from X
where X.a like 'XX%'
select a,rownum rn from X
where X.a like '11%'
union
select a,rownum+1 rn from X
where X.a like '12%'
union
.
.
.
union
select a,rownum+1 rn from X
where X.a like 'XX%')
只能按上面union (最好是union all),或者order by case when .. like '11%' then 1 when .. then 2 when .... end