[英]SQL REPLACE statement not returning expected results with subqueries
這個問題是關於SQL Server 2005的。我有2個UDF,1個UDF查找包含2列的國家/地區代碼表; 2個UDF進行查詢。 包含國家/地區縮寫的“代碼”和包含國家/地區名稱的“名稱”。 這兩個UDF都傳遞了一個地址,並根據使用拆分字符串的UDF分解的字符串進行查找。
例如:
SELECT dbo.GetCountryName('SAMPALOC MANILA PHILIPPINES 1000')
返回“ PHILIPPINES”,然后
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語句中會導致此操作失敗。 有沒有其他人碰到過這個或者為什么會這樣?
我的返回變量放在LTRIM和RTRIM函數的UDF中。 問題解決了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.