这个问题与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”。我需要在地址整体长度> 1的情况下这样做。 60.
我不知道为什么将它放在REPLACE语句中会导致失败。有没有其他人遇到这个或者知道为什么会发生这种情况?
答案 0 :(得分:0)
在LTRIM和RTRIM函数中将我的返回变量包含在UDF中。问题解决了。