sql在select子句中重复长公式

gpnt7bae  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(292)

在里面

SELECT TIMESTAMPDIFF(SECOND,since,until) dif,
       DATE_ADD(since,INTERVAL TIMESTAMPDIFF(SECOND,since,until)/2 SECOND)
FROM....

timestampdiff(…)在select中重复。有没有一种方法可以在不重复整个公式的情况下简化/重用?别名“dif”在select参数中无效

qnzebej0

qnzebej01#

每当我在select中有麻烦的计算时,我喜欢子查询:

SELECT DATE_ADD(since, INTERVAL dif/2 SECOND) FROM (
    SELECT TIMESTAMPDIFF(SECOND,since,until) dif
    FROM....
) AS A

值得注意的是,@clinomaniac answer对于mysql来说是非常好的,但是并不是所有rdbms都认可它。

xuo3flqw

xuo3flqw2#

您可以使用select在查询中使用别名:

SELECT TIMESTAMPDIFF(SECOND,since,until) dif,
       DATE_ADD(since,INTERVAL (SELECT dif)/2 SECOND)
FROM....

相关问题