SQL表具有类型为NVARCHAR(MAX)
的列,其中包含客户状态的历史记录。在StatusHistory
列的值SQL Server:高级计算列公式
例子:
20120401P,20140715A,20160118T
含义:
- 2012年4月1,客户被待定
- 2015年7月15日的客户开始活跃
- 1月18日,2016客户被终止
状态将始终按照时间顺序升序排列!
在该表中,我有一个名为CustStatus
中,我想通过上述基于GETDATE()
阅读StatusHistory
列来存储当前客户状态列。
目前我正在使用用户定义函数的CustStatus
中的公式执行此操作。
我可能是错的,但我认为如果我可以做到这一点而不使用用户定义的函数,我可以提高查询的性能,包括这些信息。
那么,会不会有一个公式让我可以根据GETDATE()
从StatusHistory
填充CustStatus
?
这是一个**糟糕的设计!**不要浪费你的时间来处理这个问题 - 你需要**修复你的设计!**。您应该有一个具有当前状态的“客户”表格和一个引用“客户”表格的单独的“CustomerHistory”表格,并包含日期和状态的列。有了这样一个**正确的关系**设置,查询将是一件轻而易举的事! –
**为什么我不断得到答案,如果我的问题是“设计是否好?”**。这不是我问的!所以我想没有人知道如何去做。 –
@FrankM。,因为回答你的实际问题将鼓励你继续使用它:) –