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。,因爲回答你的實際問題將鼓勵你繼續使用它:) –