簡體   English   中英

SQL REPLACE語句不返回帶有子查詢的預期結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM