目前我必须要改变视图,视图代码的很大一部分是这样的:避免代码复制的最佳做法?
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