MySQL引用,以避免重复自己?

时间:2015-11-30 17:30:00

标签: mysql

我有这个片段:

\W

我可以做任何事情来删除重复吗?沿着这些方向的东西,例如:(假设代码如下):

SELECT 
    CASE WHEN
        AVG(UNIX_TIMESTAMP(tDone)-UNIX_TIMESTAMP(tIPN))/3600 >= 10
    THEN
        ROUND(AVG(UNIX_TIMESTAMP(tDone)-UNIX_TIMESTAMP(tIPN))/3600,0)
    ELSE
        ROUND(AVG(UNIX_TIMESTAMP(tDone)-UNIX_TIMESTAMP(tIPN))/3600,1)
    END 
FROM
    ...

2 个答案:

答案 0 :(得分:2)

使用子查询,您可以执行以下操作:

SELECT 
  CASE WHEN avgtiPN >= 10 THEN ROUND(avgtiPN,0) ELSE ROUND(avgtiPN,1) END 
FROM 
  (SELECT 
     AVG(UNIX_TIMESTAMP(tDone)-UNIX_TIMESTAMP(tIPN))/3600 AS avgtiPN
   FROM
    ...) AS AVGQuery

但我仍然不确定它是否更具可读性。

答案 1 :(得分:1)

是的,您可以,但是对于用户定义的变量,未定义变量处理顺序。 MySQL文档中的This reference解释了它何时起作用以及何时起作用。