目前我必須要改變視圖,視圖代碼的很大一部分是這樣的:避免代碼複製的最佳做法?
CAST('My_Tag_' + CASE
WHEN FieldX isnull
THEN ''
WHEN FieldX = '123'
THEN 'some_number'
WHEN FieldX = 'abc'
THEN 'some_text'
ELSE 'strange') AS VARCHAR(128) AS myField
)
只是一個代碼塊,即拼字符串(代碼本身甚至沒有事,現在,我有50個其他例子,我有很多代碼複製)。現在我在視圖中有30個更多字段的完全相同的代碼,只是'My_Tag_'和FieldX正在改變。如果這將是C#,我只會寫一個輔助函數。 當然,我也可以在這裏寫一個函數。但由於這是一個更大的項目,有很多表格,視圖等,我很快就會有數百個功能。
現在我對SQL很陌生,通常我的家就是OOP世界。但是必須有一個解決方案來避免代碼複製,並避免在數據庫中有數百個輔助函數?
在這種情況下最佳做法是什麼?
嘗試使用標量值功能..並把代碼在其中返回VARCHAR(128) – 2011-12-21 09:25:34