首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sql SELECT IF和ORDER BY

sql SELECT IF和ORDER BY
EN

Stack Overflow用户
提问于 2013-12-05 18:34:38
回答 6查看 71关注 0票数 0

我有一个类似这样的查询:

代码语言:javascript
运行
复制
   SELECT priority, likes FROM table ORDER BY priority, likes DESC;

优先级和点赞是整数投票。我想加上'IF‘从句,

代码语言:javascript
运行
复制
  IF (priority > 1 AND priority < 100)
  {
      ORDER BY priority;
  }
  ELSE
  {
      ORDER BY likes DESC;
  }

我不知道该怎么问。提前谢谢你

EN

回答 6

Stack Overflow用户

发布于 2013-12-05 18:38:20

请尝试以下操作

代码语言:javascript
运行
复制
ORDER BY CASE WHEN priority > 1 AND priority < 100 THEN priority ELSE likes END DESC
票数 1
EN

Stack Overflow用户

发布于 2013-12-05 18:36:10

你的意思是?

代码语言:javascript
运行
复制
SELECT priority, likes 
FROM table 
WHERE priority > 1 AND priority < 100  
ORDER BY priority, likes DESC;

啊,刚刚看了你的更新,试试这个

代码语言:javascript
运行
复制
SELECT priority, likes 
FROM table 
ORDER BY IF(priority > 1 AND priority < 100, priority, likes DESC)

或者像我这样的案例

代码语言:javascript
运行
复制
SELECT priority, likes 
FROM table
ORDER BY 
    CASE WHEN priority > 1 AND priority < 100 
         THEN priority 
         ELSE likes 
END ASC

注意:语法可能有点差,在这台速度很慢的pc上没有打开我的sql

票数 0
EN

Stack Overflow用户

发布于 2013-12-05 18:36:58

你能试试这个吗?

代码语言:javascript
运行
复制
SELECT priority, likes
FROM table
ORDER BY IF (priority > 1 AND priority < 100, priority, 0 - likes);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20397626

复制
相关文章

相似问题

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