MySQL 相当于 MS SQL 交叉应用

标签 mysql sql sql-server

如果您习惯了 MS SQL 的交叉应用,那么您可能想知道如何在 MySQL 中完成同样的事情。我找到了 the reverse question并认为直接的问题可能会帮助任何搜索如何将此功能从 MS SQL 迁移到 MySQL 的人。

在此示例中,交叉应用允许您修改字段并在同一个查询中使用结果。问题是如何在 MySQL 中做到这一点。

SELECT v.Var1, POWER(v.Var1, 2) AS Var2Squared
    FROM [Table] t
    CROSS APPLY (SELECT t.Column1 + t.Column2 AS Var1) v

最佳答案

您对自己问题的回答表明 非常 CROSS APPLY 所做的事情的子集。对于这个特定问题,您可以使用子查询:

select t.*, power(var1, 2)
from (select (column1 + column2) as var1
      from aTable
     ) t;

这更昂贵,因为它会产生具体化子查询的费用。另一种方法是重复表达式:

select (column1 + column2) as var1, power((column1 + column2), 2)
from aTable;

这些是我在 MySQL 中很容易想到的唯一安全的方法来做你想做的事。

关于MySQL 相当于 MS SQL 交叉应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32894065/

相关文章:

sql - 如何使用 manage.py 加载 .sql 文件

mysql - 带有内部连接和子查询的 SQL

sql-server - PowerShell登录和特权

c# - C# 中的数据库连接

mysql - 使用ROR时遇到很多问题

php - Yii 和 ActiveRecord 按计数分组

sql - Redshift : TRUNCATE TABLE IF EXISTS

sql - TSQL : OR Status of Previous month

MySQL数据库错误: Column count doesn't match value count at row 1 1 7

使用codeigniter进行MySql查询