我似乎找不到这个问题的答案:
假设我有一个像这样的表:
ID Name
------------------------
1 AAAAAAAAA
2 ABAAAAAAA
3 BBAAAAAAA
4 CDAAAAAAA
5 BBAAAAAAA
有什么办法可以通过以下方式订购name
- 但是 - 从说开始该订单BB
让它循环回来(而不是从A-Z,从BB
to BA
)
最终结果将是:
3 BBAAAAAAA
5 BBAAAAAAA
4 CDAAAAAAA
1 AAAAAAAAA
2 ABAAAAAAA
那有意义吗?
如果你想要BB
要出现在开头,您可以使用:
select *
from yourtable
order by case when substring(name, 1, 2) = 'BB' then 0 else 1 end
See SQL 摆弄演示 http://sqlfiddle.com/#!2/91d54/2
如果你想CD
出现第二个,然后使用:
select *
from yourtable
order by
case
when substring(name, 1, 2) = 'BB' then 0
when substring(name, 1, 2) = 'CD' then 1
else 2 end, name
See SQL 摆弄演示 http://sqlfiddle.com/#!2/91d54/8
第二次查询的结果:
| ID | NAME |
------------------
| 3 | BBAAAAAAA |
| 5 | BBAAAAAAA |
| 4 | CDAAAAAAA |
| 1 | AAAAAAAAA |
| 2 | ABAAAAAAA |
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)