首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按情况顺序使用LIKE的SQL

按情况顺序使用LIKE的SQL
EN

Stack Overflow用户
提问于 2016-02-03 19:14:59
回答 1查看 57关注 0票数 0

我需要这样分类:

第一个结果是所有从CHA开始的人,然后是MAS,DIA,PLA,GOL,SIL,BRO。

如下所示:

  1. 挑战者I
  2. 挑战者I
  3. 大师二
  4. 大师三
  5. 铂II
  6. 铂IV
  7. 铂V 等等。

最重要的是只按名字排序,而不是最后的罗马数字,但是,如果这很容易的话,如果有人愿意展示一种方式的话,那将是值得赞赏的。

到目前为止,这是我的SQL:

代码语言:javascript
复制
  SELECT rank FROM table 
  ORDER BY
   CASE rank
      WHEN rank LIKE 'CHA%' THEN 1
      WHEN rank LIKE 'MAS%' THEN 2
      WHEN rank LIKE 'DIA%' THEN 3
      WHEN rank LIKE 'PLA%' THEN 4
      WHEN rank LIKE 'GOL%' THEN 5
      WHEN rank LIKE 'SIL%' THEN 6
      WHEN rank LIKE 'BRO%' THEN 7
      WHEN rank LIKE 'Unranked' THEN 8
      WHEN rank LIKE 'No Data' THEN 9
      ELSE 10
   END;

然而,这是行不通的。我正在使用MySQL数据库。任何帮助都很感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-03 19:22:24

你所拥有的是:

代码语言:javascript
复制
SELECT [rank] FROM table 
  ORDER BY
   CASE  [rank]
      WHEN [rank] LIKE 'CHA%' THEN 1
      WHEN [rank] LIKE 'MAS%' THEN 2
      WHEN [rank] LIKE 'DIA%' THEN 3
      WHEN [rank] LIKE 'PLA%' THEN 4
      WHEN [rank] LIKE 'GOL%' THEN 5
      WHEN [rank] LIKE 'SIL%' THEN 6
      WHEN [rank] LIKE 'BRO%' THEN 7
      WHEN [rank] LIKE 'Unranked' THEN 8
      WHEN [rank] LIKE 'No Data' THEN 9
      ELSE 10
   END;

你想做的是:

代码语言:javascript
复制
    SELECT [rank] FROM table 
      ORDER BY
       CASE  
          WHEN [rank] LIKE 'CHA%' THEN 1
          WHEN [rank] LIKE 'MAS%' THEN 2
          WHEN [rank] LIKE 'DIA%' THEN 3
          WHEN [rank] LIKE 'PLA%' THEN 4
          WHEN [rank] LIKE 'GOL%' THEN 5
          WHEN [rank] LIKE 'SIL%' THEN 6
          WHEN [rank] LIKE 'BRO%' THEN 7
          WHEN [rank] LIKE 'Unranked' THEN 8
          WHEN [rank] LIKE 'No Data' THEN 9
          ELSE 10
       END;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35185717

复制
相关文章

相似问题

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