首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLite中拉丁和英语名称的条件排序

SQLite中拉丁和英语名称的条件排序
EN

Stack Overflow用户
提问于 2017-05-24 14:19:29
回答 1查看 119关注 0票数 0

我有一个表'Employee‘,它有列DevId、Id、FName、FNamePinYin。FName将有中文和英文的联系方式。现在,根据要求,我可以按以下顺序获得联系人:

代码语言:javascript
复制
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

使用以下查询:

代码语言:javascript
复制
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被要求在每个字母表的类别中首先显示中文名称。

我想要的输出:

代码语言:javascript
复制
FName          FNamePinYin
爱华 杨         AIHUA YANG
安国华          ANGUOHUA
Aihua Yang     AIHUA YANG
Anguohua       ANGUOHUA
爸             BA
波 小           BO BEI BI XIAO
毕慧            BIHUI
Ba             BA
Bihui          BIHUI
Bin Guo        BIN GUO

FNamePinYin是相当于中文名称的英文名称。

有人能帮我得到我想要的结果吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-25 16:50:21

你的问题还不完全清楚,但根据你所说的“在每一类(A)”中,“中文和英文名称都应按加入顺序”,那么,以下是我认为你想做的事:

代码语言:javascript
复制
 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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44161114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档