SQL - 基于计算字段的计算字段?

时间:2016-05-30 05:06:01

标签: sql tsql

您好我有两列我连接A& B,这是为了找出客户ID。 我需要在该计算字段上做一个案例陈述。 可以一次完成吗?

Column A
Column B
Column C = Column A & Column B
Column D = Case When (column C) = 001-002 then XXXX

D栏无效。问题是,如果C列是计算字段,我可以在单个查询中计算C列以给出D列吗?

由于

2 个答案:

答案 0 :(得分:2)

你应该这样做......因为计算的列不会有助于进一步的计算

Column A
Column B
Column C = Column A & Column B
Column D = Case When (Column A & Column B) = 001-002 then XXXX

答案 1 :(得分:0)

我认为,你所使用的逻辑应该有效,我看到的问题可能出现在“001-002”中。您是否将D列与001到002的减去值进行比较?如果没有,那么你应该用单引号括起来。

而且,根据您在T-SQL中编写的逻辑,您不需要计算C列。 因此,解决方案可能是:

Column A
Column B
--Column C = Column A & Column B --commented out
Column D = Case When (Column A+Column B) = '001-002' then XXXX END

您还可以在CASE Expression中使用ELSE条件。另外,我假设A列和B列是String数据类型(即CHAR / VARCHAR / NVARCHAR)。