【发布时间】:2018-03-05 18:19:20
【问题描述】:
我正在尝试定义一个名为End Year 的新列,这是对另一列的计算加上一个代表年数的数字。由于某种原因,我的脚本无法使用 SQL Server 2008 中 SQL 语句下面的摘录识别名为 Allocation Year 的新列。请注意,Contract Year 是在未编辑的完整脚本中标识的现有列:
,[Allocation Type] =
CASE
WHEN left([contract type] ,1)'1' = THEN 'O&M'
ELSE 'N/A'
END
,[Allocation Year] =
CASE
WHEN [Contract Year]='XXXX' THEN '0'
ELSE CAST ([Contract Year] AS INT)
END
,[End Year] =
CASE
WHEN [Allocation Type]='O&M' THEN [Allocation Year] + 6
END
【问题讨论】:
-
确认一下,您要在查询结果中添加一列 - 而不是实际表?
-
我认为您在上一个案例中缺少 ELSE。
-
是的,我认为最好在视图上创建而不是在表中创建一个永久列。
标签: sql sql-server calculated-columns