A表结构:
A_PKID
......A_B_Ref表结构
A_FKID
B_FKID
OrderNum '排序编号B表结构:
B_PKID
......
有一语句:
SELECT *
FROM A
WHERE (A_PKID IN
(SELECT A_fkid
FROM A_B_Ref
WHERE B_fkid IN
(SELECT B_pkid
FROM B
WHERE Field1 LIKE '人民')))但我希望最终出来的A表结果能按照A_B_Ref表的OrderNum字段进行排序,该如何实现?
A_PKID
......A_B_Ref表结构
A_FKID
B_FKID
OrderNum '排序编号B表结构:
B_PKID
......
有一语句:
SELECT *
FROM A
WHERE (A_PKID IN
(SELECT A_fkid
FROM A_B_Ref
WHERE B_fkid IN
(SELECT B_pkid
FROM B
WHERE Field1 LIKE '人民')))但我希望最终出来的A表结果能按照A_B_Ref表的OrderNum字段进行排序,该如何实现?
加在哪里?子查询里面吗?那不行的
表a里有个列叫Type,是商品类别,就3种情况:S,A,B,如下:
id name type
1 一班 S
2 五班 A
3 三班 B
4 四班 B
5 二班 A
6 六班 S
现在我需要按照‘S’,‘A’,‘B’的顺序排序,如下:
1 一班 S
6 六班 S
5 二班 A
2 五班 A
3 三班 B
4 四班 B SELECT *
FROM tbl_test
ORDER BY "@#$$%#$%@$@#$@$@#@$这里应该咋写?"
select * from a where type='S' union all
select * from a where type='A' union all
select * from a where type='B'
select id , name ,type
from a
order by case type when 'S' then 1
when 'A' then 2 when 'B' then 3 else 4 end (如果对ID排序,则加最后加,id)
select id , name ,type
from (select *, case type when 'S' then 1 when 'A' then 2 else 3 end as seq from a) X
order by seq
上诉对ID列没有进行排序,如果在上诉基础上对ID再进行排序。
select id , name ,type(假设有列id ,name, type)
from (select *, case type when 'S' then 1 when 'A' then 2 else 3 end as seq from a) X
order by seq,id
1 一班 S
6 六班 S
2 五班 A
5 二班 A
3 三班 B
4 四班 B