SQL - 帮我 Select 在存储过程中连接两个变量的结果

SQL - Help me Select the result of concatenating two variables in a stored procedure

我试图在存储过程中连接两个变量,以便在 SELECT 语句中使用结果字符串。连接按预期工作,但在执行时 table 未正确填充。这是代码:

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';

这是结果 这是期望的结果

如您所见,table 填充了正确数量的行,但只是用连接的字符串替换了数据。提前致谢!

你需要动态 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