我有一个表'Phone_Contact‘,它包含列ContactsId,DevId,FName,FNamePinYinSpel。FName将有中文和英文的conatct名称。现在,根据要求,我可以设法按以下顺序获得联系人:
FName FNamePinYinSpel
北蔡王先生 Bei Cai Wang Xian Shen
广州房东 Fang Hua Lu Qi Tian Lian Suo
jie王 Jie wang
杰wang Jie wang
Lastname Tess Lastname Tess
李 二 Li er
李 四 Li si
李 一 Li yi
李 一 一 Li yi yi
林 二 Lin er
林 一 Lin yi
林 一 一 Lin yi yi
凌 一 Ling yi
凌 一 一 Ling yi yi
凌 二 Ling er
凌 依依 Ling yi yi 通过使用以下查询
SELECT icu_load_collation('en-u-ks-level1-kr-latn-zh','PinyinM')";
SELECT FName from Phone_Contact where DevId is 1 ORDER BY substr(FNamePinYinSpel ,1,5), (substr(FName,1,5) < 'zz'), FName COLLATE PinyinM LIMIT 50 OFFSET 0 ;但下面提到了所需的内容。
FName FNamePinYinSpel
北蔡王先生 Bei cai wang xian shen
广州房东 Fang hua lu qi tian lian suo
jie王 Jie wang
杰wang Jie wang
Lastname Tess Lastname Tess
李 二 Li er
李 四 Li si
李 一 Li yi
李 一 一 Li yi yi
林 二 Lin er
林 一 Lin yi
林 一 一 Lin yi yi
凌 二 Ling er
凌 一 Ling yi
凌 一 一 Ling yi yi
凌 依依 Ling yi yi有没有人能帮我得到想要的输出注意: FNamePinYinSpel是中文名字的英文翻译。
发布于 2020-08-09 04:31:31
您的ORDER BY子句没有执行您想要执行的操作。它只考虑FNamePinYinSpel的前5个字符。
ORDER BY substr(FNamePinYinSpel ,1,5), (substr(FName,1,5) < 'zz')但您似乎想要按整个FNamePinYinSpel进行排序。在这种情况下,只需删除5个字符的限制,就不需要包含(substr(FName,1,5) < 'zz')部件。如果中文名称和英文名称混合在一个列中,但您有一个全是英文名称的FNamePinYinSpel,那么这可能会很有用
ORDER BY FNamePinYinSpelhttps://stackoverflow.com/questions/63267963
复制相似问题