mysql 汉字排序问题

reasonhx 2013-09-02 02:53:53
自己写了个sql语句
SELECT UnitName FROM T_BAS_ORGANIZATION WHERE SuperId = '1' and UnitLevel = '1' order by
CHARINDEX(SUBSTRING(UnitName,6,1),'一,二,三,四,五,六,七,八,九') asc

查出来的结果是

但是不确定,数据库中那天再加个其他的北京第几几客运公交公司 怎么修该
...全文
147 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
reasonhx 2013-09-02
  • 打赏
  • 举报
回复
要是几百条的话怎么办啊
reasonhx 2013-09-02
  • 打赏
  • 举报
回复
我的是sqlserver
Shawn 2013-09-02
  • 打赏
  • 举报
回复
--SORRY,没看清,你的是MYSQL,还是去MYSQL专区问吧
Shawn 2013-09-02
  • 打赏
  • 举报
回复
SELECT  UnitName
FROM    T_BAS_ORGANIZATION
WHERE   SuperId = '1'
        AND UnitLevel = '1'
ORDER BY		--PATINDEX支持模糊查询
(
	CASE
		WHEN PATINDEX('%十一%', UnitName) > 0 THEN 11
		WHEN PATINDEX('%十二%', UnitName) > 0 THEN 12  
		WHEN PATINDEX('%十%', UnitName) > 0 THEN 10
		WHEN PATINDEX('%一%', UnitName) > 0 THEN 1
		WHEN PATINDEX('%二%', UnitName) > 0 THEN 2
		WHEN PATINDEX('%三%', UnitName) > 0 THEN 3
		WHEN PATINDEX('%四%', UnitName) > 0 THEN 4
		WHEN PATINDEX('%五%', UnitName) > 0 THEN 5
		WHEN PATINDEX('%六%', UnitName) > 0 THEN 6
		WHEN PATINDEX('%七%', UnitName) > 0 THEN 7
		WHEN PATINDEX('%八%', UnitName) > 0 THEN 8
		WHEN PATINDEX('%九%', UnitName) > 0 THEN 9
	END  
)
唐诗三百首 2013-09-02
  • 打赏
  • 举报
回复

SELECT UnitName  
 FROM T_BAS_ORGANIZATION 
 WHERE SuperId = '1' and UnitLevel = '1'   
 order by 
 case when UnitName='北京公交第一客运分公司' then 1
      when UnitName='北京公交第二客运分公司' then 2
      when UnitName='北京公交第三客运分公司' then 3
      when UnitName='北京公交第四客运分公司' then 4
      when UnitName='北京公交第五客运分公司' then 5
      when UnitName='北京公交第六客运分公司' then 6
      when UnitName='北京公交第七客运分公司' then 7
      when UnitName='北京公交第八客运分公司' then 8
      when UnitName='北京公交第九客运分公司' then 9
      when UnitName='北京公交第十客运分公司' then 10
      when UnitName='北京公交第十一客运分公司' then 11
      when UnitName='北京公交第十二客运分公司' then 12
      else 0
  end asc

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧