如何优化函数调用另一个函数来连接字符串

时间:2013-01-31 12:23:22

标签: sql-server function

我希望在显示连锁货币时创建更优化的代码。基本上,我只是想将一系列货币代码转换为列中各自的(描述性)值。

以下是示例:

'USD SGD PHP' --> 'US Dollar, Singapore Dollar, Philippine Peso'

我希望你能得到我当前代码的流程:

  1. 创建标量函数(dbo.GetCurrencyDesc_fn),返回接受货币代码作为参数的货币描述。 '...where currency_code = @code'返回货币说明。

  2. 创建了另一个标量函数(dbo.GetMultiCurrencyDesc_fn),它在循环中解析货币代码字段('USD SGD PHP'),然后每次调用第一个函数来获取它们各自的描述。然后,结果将以字符串... 'SELECT @returnList = ISNULL(@returnList,'') + ', ' + dbo.GetCurrencyDesc_fn(@Code) <--- inside the loop.

  3. 连接起来

    以下是我打算如何使用该功能:

    SELECT a.column1, a.column2, b.column3, c.column4, 
    dbo.GetMultiCurrencyDesc_fn(a.currencyCodes) 
    FROM table1 a LEFT JOIN table2 b ON a.code1 = b.code1 
    LEFT JOIN table3 c ON a.code2 = c.code2 WHERE a.code3 = 100;
    

    您认为我如何改进此代码?在我看来,由于重复查询,我的第一个函数会减慢进程。

    有没有办法使用类似的概念来避免这种情况。顺便说一下,我不需要编写实际的代码,因为这个概念正是实际代码的编写方式。

    即使是高级别的回复也是受欢迎的。只是给我一个主意。拥有实际代码当然会很棒! :)

    提前致谢。

0 个答案:

没有答案