我将两个变量连接成一个有一些问题,也许有人会告诉我我做错了什么,或者甚至可以做我想做的事情。 我有一些声明的变量 - VAR1,VAR2等。所有这些变量都被声明了。我想要做的是将两个变量(变量的第二部分是动态生成的,它是当前的迭代次数)连接到一个并在代码中使用这个变量。
我的代码的示例部分:
DECLARE @LoopCounter INT = 1, @MaxVar INT = 10;
DECLARE @VAR1 varchar(15) = '12345'
DECLARE @VAR2 varchar(15) = '67890'
DECLARE @VAR3 varchar(15) = '246810'
....
WHILE(@LoopCounter <= @MaxVar)
BEGIN
DECLARE @a varchar(4)= '@VAR'
DECLARE @b varchar(2)= cast (@LoopCounter as varchar(2))
DECLARE @c varchar(6)= @a + @b
SELECT
(SELECT fullname FROM company WHERE company_id = @c) as Vendor,
,@c as company_id
...
SET @LoopCounter = @LoopCounter + 1
END;
不幸的是,我收到的只是:
Vendor company_id
----- ----------
null @VAR1
null @VAR2
null @VAR3
... ...
我尝试了很多组合,例如。
SELECT
(SELECT fullname FROM company WHERE company_id = '@VAR + cast (@LoopCounter as varchar(2))') as Vendor,
,'@VAR + cast (@LoopCounter as varchar(2))' as company_id
...
或
SELECT
(SELECT fullname FROM company WHERE company_id = @VAR + ' + @b + ') as Vendor,
,@VAR + ' + @b + ' as company_id
...
但我所拥有的只是声明od @ VAR's。
为什么@a + @b的连续,在第一次迭代中是'@ VAR1',不会将值赋给@ VAR1 - &gt; '12345'?为什么它是字符串,而不是变量的值?我应该改变或做什么才能做到这一点?
请帮助:)