说我有以下问题:
select ID, ActualDate, DueDate
from table1
我需要做的是添加另一个名为Flag的字段 如果ActualDate大于DueDate
,将标记为“Y” select ID, ActualDate, DueDate,
CASE
WHEN ActualDate > DueDate THEN 'Y'
ELSE 'N'
END as Flag
from table1
上面的代码无效,因为我得到了无效的列名ActualDate。列名DueDate无效。 我需要做的是在这样的选择中选择:
select ID, ActualDate, DueDate,
CASE
WHEN ActualDate > DueDate THEN 'Y'
ELSE 'N'
END as Flag
from
(select ID, ActualDate, DueDate
from table1) tbl1
)
答案 0 :(得分:0)
如果您的表中包含字段,那么以下内容应该可以在不需要子查询的情况下运行:
select ID,
ActualDate,
DueDate,
CASE
WHEN ActualDate > DueDate
THEN 'Y'
ELSE 'N'
END as Flag
FROM table1
您可以使用子查询,但这是不必要的:
select ID,
ActualDate,
DueDate,
CASE
WHEN ActualDate > DueDate
THEN 'Y'
ELSE 'N'
END as Flag
FROM
(
select ID, ActualDate, DueDate
from table1
) tbl1