我有一个表'Employee‘,它有列DevId、Id、FName、FNamePinYin。FName将有中文和英文的联系方式。现在,根据要求,我可以按以下顺序获得联系人:
FName FNamePinYin
爱华 杨 AIHUA YANG
安国华 ANGUOHUA
Anguohua ANGUOHUA
Aihua Yang AIHUA YANG
爸 BA
波 小 BO BEI BI XIAO
毕慧 BIHUI
Bin Guo BIN GUO
Bihui BIHUI
Ba BA使用以下查询:
Select FName, SortString
from Employee
where Id in (SELECT Id
FROM EMP1
WHERE '1' = DevId
ORDER BY FnamePinYin
LIMIT 500 OFFSET 0)
ORDER BY substr(FnamePinYin,1,1) , Lower(FName) DESC现在的问题是,联系人名称没有按升序排序。
注:在这里,低(FName) DESC被要求在每个字母表的类别中首先显示中文名称。
我想要的输出:
FName FNamePinYin
爱华 杨 AIHUA YANG
安国华 ANGUOHUA
Aihua Yang AIHUA YANG
Anguohua ANGUOHUA
爸 BA
波 小 BO BEI BI XIAO
毕慧 BIHUI
Ba BA
Bihui BIHUI
Bin Guo BIN GUOFNamePinYin是相当于中文名称的英文名称。
有人能帮我得到我想要的结果吗?
发布于 2017-05-25 16:50:21
你的问题还不完全清楚,但根据你所说的“在每一类(A)”中,“中文和英文名称都应按加入顺序”,那么,以下是我认为你想做的事:
select *
from Employee
where Id in (SELECT Id
FROM PBAPL1
WHERE '1' = DevId
ORDER BY FnamePinYin
LIMIT 500 OFFSET 0)
order by substr(FNamePinYin,1,1), (substr(FName,1,1) < 'zz'), FName;https://stackoverflow.com/questions/44161114
复制相似问题