首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PGSQL查询,以便在每个用户名中指定一个字母进行排序。

问PGSQL查询,以便在每个用户名中指定一个字母进行排序。
EN

Stack Overflow用户
提问于 2017-11-18 07:55:58
回答 1查看 176关注 0票数 1

我必须编写一个查询,将我的用户名排序(按顺序排序),并将其与特定的字母排序(在名称内)。例如,如果我有用户Lemon、Loger、Alan、Avon、Bland、Cavin、Clauge,那么我的查询应该按照以下顺序返回:

  • 柠檬
  • 记录员
  • 艾伦
  • 平淡
  • 克劳奇
  • 雅芳
  • 卡文

即"L“字母应优先排序

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-18 08:58:25

您可以使用position函数提取l的位置,并根据位置进行排序。然而,有两个注意事项要记住:

  1. position是区分大小写的,所以您必须显式地处理案例(例如,通过降低字符串来搜索)。
  2. 如果您正在搜索的子字符串(在本例中为l)不在字符串中,则position将返回0,因此您必须显式地处理0,以免没有Ls的名称出现在前面而不是最后:
代码语言:javascript
复制
SELECT   name
FROM     mytable
ORDER BY CASE POSITION('l' IN LOWER(name))
              WHEN 0 THEN NULL
              ELSE POSITION('l' IN LOWER(name)) 
         END ASC NULLS LAST,
         name
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47363889

复制
相关文章

相似问题

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