自己写了个sql语句
SELECT UnitName FROM T_BAS_ORGANIZATION WHERE SuperId = '1' and UnitLevel = '1' order by
CHARINDEX(SUBSTRING(UnitName,6,1),'一,二,三,四,五,六,七,八,九') asc 查出来的结果是但是不确定,数据库中那天再加个其他的北京第几几客运公交公司 怎么修该mysql数据库
SELECT UnitName FROM T_BAS_ORGANIZATION WHERE SuperId = '1' and UnitLevel = '1' order by
CHARINDEX(SUBSTRING(UnitName,6,1),'一,二,三,四,五,六,七,八,九') asc 查出来的结果是但是不确定,数据库中那天再加个其他的北京第几几客运公交公司 怎么修该mysql数据库
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
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
)