Mysql 在select中使用变量
我有一个这样的问题Mysql 在select中使用变量,mysql,subquery,case,Mysql,Subquery,Case,我有一个这样的问题 SELECT ID, ... , (SELECT MAX(EndDate) FROM Projects) As NewestDate, (CASE WHEN (NewestDate > NOW()) THEN 'More Work is coming' ELSE 'Send Vendors to work' END) Message FROM SOME_TABLE i、 我试
SELECT ID, ... ,
(SELECT MAX(EndDate) FROM Projects) As NewestDate,
(CASE
WHEN (NewestDate > NOW()) THEN 'More Work is coming'
ELSE 'Send Vendors to work'
END) Message
FROM SOME_TABLE
i、 我试图在一个案例中使用NewestDate的值。这可能吗?或者像这样的事情可能吗
直接谢谢不。你可以用同一句话两次:
SELECT ID, ... ,
(SELECT MAX(EndDate) FROM Projects) As NewestDate,
(CASE
WHEN ((SELECT MAX(EndDate) FROM Projects) > NOW())
THEN 'More Work is coming'
ELSE 'Send Vendors to work'
END) Message
FROM SOME_TABLE
如果要使用已计算的,请使用子查询:
select t.*,
(
case
when (NewestDate > NOW())
then 'More Work is coming'
else 'Send Vendors to work'
end
) Message
from (
select ID,
...,
(
select MAX(EndDate)
from Projects
) as NewestDate
from SOME_TABLE
) t;
你可以在最新的日期加入。这将比每一行的子查询更快
SELECT ID, ... ,
nd.NewestDate,
(CASE
WHEN (nd.NewestDate > NOW()) THEN 'More Work is coming'
ELSE 'Send Vendors to work'
END) Message
FROM SOME_TABLE
JOIN (
SELECT MAX(EndDate) AS NewestDate FROM Projects
) nd