2016-05-30 141 views
0

嗨我有两列,我连接A &乙,这是为了弄清楚客户的ID。 我需要然后在该计算字段上做一个case语句。 它可以一气呵成吗?SQL - 基于计算字段的计算字段?

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

你应该做这样......作为计算列是不会在进一步的计算,以帮助

Column A 
Column B 
Column C = Column A & Column B 
Column D = Case When (Column A & Column B) = 001-002 then XXXX 
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 ELSE条件表达。另外,我假设列A和B是String数据类型(即CHAR/VARCHAR/NVARCHAR)。