数据库有表,T_table 具体数据如下:
| p_id(序号) | p_name(出版社名称) | p_addr(出版地) |
| 11 | 福建人民出版社 | 福建 |
| 22 | 北京理工大学出版社 | 北京 |
| 33 | 广州出版社 | 广州 |
| 44 | 北京出版社 | 北京 |
平时我可以通过语句“select p_id 序号,p_name 出版社名称,p_addr 出版地 from T_table”将数据查询出来
但是增加条件是“出版社名称,有字眼‘北京’开头的,排序在查询结果的前面,其他的排在后面,不去除。”
即效果:
| 序号 | 出版社名称 | 出版地 |
| 44 | 北京出版社 | 北京 |
| 22 | 北京理工大学出版社 | 北京 |
| 11 | 福建人民出版社 | 福建 |
| 33 | 广州出版社 | 广州 |
那就要用到like、case when 的组合:select p_id 序号,p_name 出版社名称,p_addr 出版地 from T_table order by(case when p_name like'北京%' then 0 else 1 end)
本文介绍了一种使用SQL的CASE WHEN和LIKE组合进行特定条件排序的方法,通过实例演示了如何让满足条件的数据排在查询结果前列。

被折叠的 条评论
为什么被折叠?



