0

如何在 DATE_SUB 计算中使用动态创建的字段?

我在下面有这个 SQL:

SELECT *, 
        CASE 
            WHEN `currentDate` IS NULL 
            THEN 
                `lastDate`
            ELSE 
                `currentDate`
        END AS `useDate`, 
        CASE 
            WHEN `type` = 'weekly' 
                THEN DATE_SUB(`useDate`, INTERVAL 1 WEEK)
            END AS `nextDate`
    FROM `aTable`

这不起作用,由于错误'#1054 - '字段列表'中的未知列'useDate''

如果我使用 Select * 中的实际字段,查询工作正常,但不会接受动态创建的字段。

无需进行“以防万一”查询的正确方法是什么?

4

1 回答 1

0

你有没有尝试使用CASE里面的子句WHEN

SELECT *, 
        CASE 
            WHEN `currentDate` IS NULL 
            THEN `lastDate`
            ELSE `currentDate`
        END AS `useDate`, 
        CASE 
            WHEN `type` = 'weekly' 
                THEN DATE_SUB(
                        CASE 
                            WHEN `currentDate` IS NULL 
                            THEN `lastDate`
                            ELSE `currentDate` 
                        END AS `useDate`
                    , INTERVAL 1 WEEK)
            END AS `nextDate`
    FROM `aTable`
于 2013-08-23T03:29:49.560 回答