sql语句中可恶的replace语句与结构化查询

今天用navicat查询数据库中的项目进度,任务要求是把项目完成日期为0000-00-00的日期输出为“进行中”。

SELECT `项目名称`,`分院`,
IF (`实际结束日期`='0000-00-00','进行中',`实际结束日期`) AS `实际结束日期`
FROM `项目计划日总结_copy1`
WHERE `项目类型` = '景观'

正确的输出方式,可以使用if函数。

我使用了replace函数,有两个错误:

1、replace是替换数据库中的内容,而原任务中的数据库内容保持不变,只是输出方式有所改变。

2、我的语句为

SELECT `项目名称`,`分院`,`实际结束日期`
IF `实际结束日期`='0000-00-00' THEN REPLACE('实际结束日期','0000-00-00','进行中') as `实际结束日期`
END IF;
FROM `项目计划日总结_copy1`

if语句属于单句,单句中不能内嵌结构化语句,意思是if和replace不能同时出现,不然就会报错。

sql语句中可恶的replace语句与结构化查询_第1张图片

 可以使用if函数解决这个问题。

你可能感兴趣的:(sql学习,sql,数据库,mysql)