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

SQL-基于计算字段的计算字段?,sql,tsql,Sql,Tsql,嗨,我有两列,我连接A和B,这样做是为了找出客户ID。 然后我需要在这个计算字段上做一个case语句。 能一次完成吗 Column A Column B Column C = Column A & Column B Column D = Case When (column C) = 001-002 then XXXX D列不工作。问题是,如果C列是计算字段,那么我可以在单个查询中计算C列以给出D列吗 谢谢您应该这样做……因为计算列对进一步计算没有帮助 Column A Column B

嗨,我有两列,我连接A和B,这样做是为了找出客户ID。 然后我需要在这个计算字段上做一个case语句。 能一次完成吗

Column A
Column B
Column C = Column A & Column B
Column D = Case When (column C) = 001-002 then XXXX
D列不工作。问题是,如果C列是计算字段,那么我可以在单个查询中计算C列以给出D列吗


谢谢

您应该这样做……因为计算列对进一步计算没有帮助

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

您应该这样做…因为计算列对进一步计算没有帮助

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

我认为,你使用的逻辑应该是有效的,我看到的问题可以在“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

也可以在大小写表达式中使用ELSE条件。另外,我假设A列和B列是字符串数据类型(即CHAR/VARCHAR/NVARCHAR)。

我认为,您使用的逻辑应该有效,我看到的问题可能在“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
也可以在大小写表达式中使用ELSE条件。此外,我假设列A和B是字符串数据类型(即CHAR/VARCHAR/NVARCHAR)