如何在 mysql 中执行 IF 语句作为 SELECT 语句的一部分

jceg316

我正在比较 URL 的搜索引擎排名,我有 3 列:URL、排名、上一个排名。我想要做的是添加第四列,说明排名是上升还是下降。

例如

URL               | Rank | Previous_Rank
example.com/page1 |  2 | 16
example.com/page2 |  2 | 11
example.com/page3 |  1 | 14
example.com/page4 |  1 | 4
example.com/page5 | 101| 7
example.com/page6 | 101| 14
example.com/page7 | 101| 7
example.com/page8 |  6 | 17
example.com/page9 |  10| 17
example.com/page10|  19| 1

我想要另一列返回:

 URL                  | Rank | Previous_Rank | Movement
    example.com/page1 |  2 | 16  | Up
    example.com/page2 |  2 | 11  | Up
    example.com/page3 |  1 | 14  | Up
    example.com/page4 |  1 | 4   | Up
    example.com/page5 | 101| 7   | Down
    example.com/page6 | 101| 14  | Down
    example.com/page7 | 101| 7   | Down
    example.com/page8 |  6 | 17  | Up
    example.com/page9 |  10| 17  | Up
    example.com/page10|  19| 1   |Down

我使用的是 mysql 的 HeidiSQL。这里的数据是一个更大表的一部分,并与这个 SELECT 语句一起被拉到一起:

select 
    URL,
    Rank,
    Previous_Rank
from URL_Changes
where
    date = "2017-06-14"
group by URL
order by 2
;

所以我的问题是,如何编辑该 select 语句以带回该额外的列?

谢谢。

内维尔

CASE为此使用了一个语句:

select 
    URL,
    Rank,
    Previous_Rank,
    CASE WHEN Rank < Previous_Rank THEN 'Up' WHEN Rank > Previous_Rank THEN 'Down' WHEN Rank = Previous_Rank THEN 'No Change' END AS Movement
from URL_Changes
where
    date = "2017-06-14"
group by URL
order by 2
;

在 MySQL 中也有一个IF()函数,但CASE几乎在每个 RDBMS 上都有使用,并且IF()需要嵌套以测试多种场景,因此Case通常是更好的选择。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在子查询中使用HAVING作为Select语句的一部分

如何返回记录数作为select语句的一部分?

MySQL-WHERE语句仅适用于SELECT语句的一部分

替换Powershell中的Select语句的一部分

如何使用IF语句(如果遇到)继续执行Powershell脚本的一部分

当语句的一部分是可变的并且变量值也被分配时,如何在变量中添加语句?

如何使条件If语句在Python中只必须满足其条件的一部分?

选择选项数组作为select语句的一部分

作为Visual Studio Team Services构建任务的一部分,如何在PowerShell脚本中执行SQL?

如何在VSTS 2015中作为发布管理的一部分执行/运行编码的UI测试?

如何在Flask中返回图像作为GET请求响应的一部分?

如何在CASE中执行SELECT语句

EF + LINQ:如何定义和利用变量(可能是Func变量)来定义Select语句的一部分?

MySQL-如何使用文件名作为查询的一部分?

循环结果集并作为存储过程的一部分执行插入语句

如何编写可以返回0行作为case语句一部分的T-SQL查询

函数未执行(逻辑语句的一部分)

如何使用通配符在mysql中删除/替换字符串的一部分?

如何在 OCaml 中输出一个空元组作为函数的一部分?

作为结构调用的一部分,如何在一行中编写变量名称?

如何计算在Python中作为列表一部分的集合的出现次数?

如何在 Postgres 中合并作为 Concact 字符串一部分的空/空值?

您如何在Visual Studio Team Services中检入文件作为构建的一部分?

如何在angularJs 1.5中将$ scope变量作为组件的templateUrl的一部分传递?

如何在 ggtree 中绘制彩色提示标签而不将其作为图例的一部分?

如果不是菜单的一部分,如何在PowerPoint中插入特殊字符作为项目符号?

如何提取SQL语句的一部分以进行搜索和替换?

返回Int的函数如何成为if语句的一部分?

如何动态构造/更改LINQ语句的一部分