我必须编写一个查询,将我的用户名排序(按顺序排序),并将其与特定的字母排序(在名称内)。例如,如果我有用户Lemon、Loger、Alan、Avon、Bland、Cavin、Clauge,那么我的查询应该按照以下顺序返回:
即"L“字母应优先排序
发布于 2017-11-18 08:58:25
您可以使用position函数提取l的位置,并根据位置进行排序。然而,有两个注意事项要记住:
position是区分大小写的,所以您必须显式地处理案例(例如,通过降低字符串来搜索)。l)不在字符串中,则position将返回0,因此您必须显式地处理0,以免没有Ls的名称出现在前面而不是最后: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,
namehttps://stackoverflow.com/questions/47363889
复制相似问题