1

我想在存儲過程中連接兩個變量,以便在SELECT語句中使用結果字符串。連接按需要工作,但執行後表格不能正確填充。下面的代碼:SQL - 幫我選擇在存儲過程中連接兩個變量的結果

Create Procedure CurrencyParameter 
    @Trade NVARCHAR (5), 
    @Target NVARCHAR (5) 
AS 
    SELECT 
     CONCAT(@Trade, '_', SUBSTRING(@Target, CHARINDEX('U', @Target) + 1, LEN(@Target))) 
    FROM 
     Trade_Ratios 


EXECUTE CurrencyParameter @Trade = 'CU1', @Target ='CU10'; 

下面是結果 enter image description here ,這裏是理想的結果 enter image description here

正如你可以看到,該表與正確的行量罷了,但只是替換數據與串聯的字符串。提前致謝!

+0

給我們從Trade_Ratios表中的一些樣本數據。 –

+0

你可以通過這篇文章: - [http://stackoverflow.com/questions/8176485/specifying-column-name-as-a-parameter-in-select-statement](http://stackoverflow.com/ question/8176485/specified-column-name-as-a-parameter-in-select-statement) – Webdev

+1

這篇文章的另一個例子:http://stackoverflow.com/questions/985842/mysql-concat-to-create-column - 查詢中要使用的名稱 –

回答

1

你需要動態SQL

CREATE PROCEDURE Currencyparameter (@Trade NVARCHAR (5), 
            @Target NVARCHAR (5)) 
AS 
    BEGIN 
     DECLARE @sql VARCHAR(8000)= '' 

     SET @sql = Concat('SELECT ', @Trade, '_', Substring(@Target, Charindex('U', @Target) + 1, Len(@Target)), ' FROM Trade_Ratios') 

     EXEC (@sql) 
    END 
+0

非常感謝!非常感謝您的幫助! –

+0

還有一個問題:我們如何選擇另一個字段以及連接字段? –

相關問題