0

这个问题与 SQL Server 2005 有关。我有 2 个 UDF,其中 1 个在包含 2 列的国家代码表上进行查找;“code”包含国家的缩写,“name”包含国家的名称。这两个 UDF 都传递了一个地址,并根据拆分字符串的 UDF 进行查找。

例如:

SELECT dbo.GetCountryName('SAMPALOC MANILA PHILIPPINES 1000')

返回“菲律宾”和

SELECT dbo.GetCountryCode('SAMPALOC MANILA PHILIPPINES 1000')

返回“PH”。

这些工作正常,但是当我在 REPLACE 语句中使用它们时:

SELECT REPLACE(('SAMPALOC MANILA PHILIPPINES 1000'),
(SELECT dbo.GetCountryName('SAMPALOC MANILA PHILIPPINES 1000')),  
(SELECT dbo.GetCountryCode('SAMPALOC MANILA PHILIPPINES 1000')))

我得到“SAMPALOC MANILA PHILIPPINES 1000”,而我需要的是“SAMPALOC MANILA PH 1000”。如果整个地址的长度> 60,我需要这样做。

我不知道为什么把它放在 REPLACE 语句中会导致它失败。有没有其他人遇到过这种情况或知道为什么会这样?

4

1 回答 1

0

在 LTRIM 和 RTRIM 函数中将我的返回变量封装在 UDF 中。问题解决了。

于 2013-10-29T16:33:40.930 回答