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
我试图在存储过程中连接两个变量,以便在 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