首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL查询计算字段

问MySQL查询计算字段
EN

Stack Overflow用户
提问于 2022-03-12 19:06:56
回答 2查看 39关注 0票数 1

我想要执行这个查询,以便在另一个计算字段中包含空结果。

代码语言:javascript
复制
SELECT ft.fecha_inicio, 
       ft.fecha_fin, 
       IF(ft.fecha_fin is NULL, now(), ft.fecha_fin) fin, 
       TIMEDIFF(fin,ft.fecha_inicio) total,
       IF (ISNULL(ft.fecha_fin), 1, 0) as encurso
FROM fabricaciones_tiempos ft
WHERE ft.id_fabricacion = 138;

这个是可能的吗?

​

​

EN

回答 2

Stack Overflow用户

发布于 2022-03-12 21:36:56

不能将计算的列直接用作另一列计算的一部分,但可以这样做:

代码语言:javascript
复制
SELECT 
  fecha_inicio,
  fecha_fin,
  TIMEDIFF(fin,fecha_inicio) total,
  encurso
FROM (
  SELECT ft.fecha_inicio, 
       ft.fecha_fin, 
       IF(ft.fecha_fin is NULL, now(), ft.fecha_fin) fin, 
       IF (ISNULL(ft.fecha_fin), 1, 0) as encurso
 FROM fabricaciones_tiempos ft
 WHERE ft.id_fabricacion = 138
) as q;
票数 0
EN

Stack Overflow用户

发布于 2022-03-12 22:12:36

不能使用别名,但可以将原公式包含在适当的位置,也可以将值赋值给变量.

代码语言:javascript
复制
SELECT ft.fecha_inicio, 
       ft.fecha_fin, 
       IF(ft.fecha_fin is NULL, now(), ft.fecha_fin) fin, 
       TIMEDIFF(IF(ft.fecha_fin is NULL, now(), ft.fecha_fin),ft.fecha_inicio) total,
       IF (ISNULL(ft.fecha_fin), 1, 0) as encurso
FROM fabricaciones_tiempos ft
WHERE ft.id_fabricacion = 138;

或者..。

代码语言:javascript
复制
SELECT ft.fecha_inicio, 
       ft.fecha_fin, 
       @fin:=IF(ft.fecha_fin is NULL, now(), ft.fecha_fin), 
       TIMEDIFF(@fin,ft.fecha_inicio) total,
       IF (ISNULL(ft.fecha_fin), 1, 0) as encurso
FROM fabricaciones_tiempos ft
WHERE ft.id_fabricacion = 138;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71452406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档