有没有办法在sql中只计算一次重复计算? [英] Is there a way to calculate repeating calculations only once in sql?

查看:68
本文介绍了有没有办法在sql中只计算一次重复计算?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 JDBC 来查询多次包含相同计算的查询.例如:

I use JDBC to query where the query contains the same calculations several times. for example:

SELECT 
DATE(CONVERT_TZ(FROM_UNIXTIME(my_time + timezone_offset * 60), @@session.time_zone, '+00:00')),
UNIX_TIMESTAMP(DATE(CONVERT_TZ(FROM_UNIXTIME(my_time + timezone_offset * 60), @@session.time_zone, '+00:00')))
FROM my_table;

我可以在不进行多次计算的情况下以某种方式完成吗?

Can I somehow do it without making the calculations several times?

(这样会提高性能,而且代码看起来更干净)

(It will make performance better, and also the code will look cleaner)

推荐答案

可以使用派生表(FROM 子句中的子查询):

You can use a derived table (sub-query in FROM clause):

select mydate, UNIX_TIMESTAMP(mydate)
from
(
  SELECT 
  DATE(CONVERT_TZ(FROM_UNIXTIME(my_time + timezone_offset * 60), @@session.time_zone, '+00:00')) as mydate,
  FROM my_table
);

这篇关于有没有办法在sql中只计算一次重复计算?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆