2009-07-24 43 views
0

我需要在當前輸入像這樣的SQL列數據格式:格式化varchar數據成某種格式

Z04000002003.7

這樣做的期望的輸出將是:

Z04 /000/002/003.7

每次用戶輸入如下所示的數據時:Z04000002003.7。用戶下次打開記錄時,它會自動格式化它以顯示Z04/000/002/003.7。

+0

需要存儲什麼 - 斜槓或不斜槓? – 2009-07-24 19:34:54

回答

1

如果要插入的INSERT或UPDATE(當字符串進入數據庫)或選擇,你可以做,在TSQL帶着幾分笨拙的字符串表達式的斜線:

SUBSTRING(thestring, 1, 3) + '/' + SUBSTRING(thestring, 4, 6) + '/' + ... 

等,但我同意其他受訪者的意見,認爲它可能是一種更好的架構,可以在「更接近用戶」的情況下執行此類轉換(在用戶界面中,或者在業務邏輯層中,如果這些斜槓實際上是業務邏輯的一部分)看起來更可能)。

2

當你說'打開記錄'究竟發生了什麼?一個網頁?

將格式設置儘可能靠近用戶 - UI層。我不認爲這是一個SQL問題。

+0

是的。這屬於用戶界面。 – shahkalpesh 2009-07-24 19:21:13

+0

顯示實際值時執行此操作。 +1。 – Will 2009-07-24 20:00:35

0

幾個選項:
1.腳本更新舊的所有行格式新標準
2.像n8wrl表示,數據返回上插入格式
3.格式。

0

數據應在輸入數據庫時​​格式化。用戶界面不必準確發送輸入到數據庫的內容。用戶不需要知道你添加了/ s。如果您無法更改UI中的數據條目(這將是我第一次選擇將其更改的位置),那麼編寫一個觸發器來處理插入數據或更新爲正確格式的數據。確保觸發器可以處理多行插入或更新!