如何将列中的所有行放入变量?
How to put all rows in a column to a variable?
我写了一个存储过程
Declare @Split table
(
Jurisdiction nvarchar(max)
)
Insert into @Split select Jurisdiction from tbLicence where AgentId =@AgentId;
Select * from @Split;
Declare @products varchar(MAX);
Select @products = Jurisdiction from @Split;
Select @products;
我想将@Split 列的所有值放入@products 变量中。
请注意,上面的代码仅将最后一行的列值放入@products。
请帮帮我!!!
首先用empty string
初始化变量。然后使用任何定界符附加所有行。使用这个。
DECLARE @products VARCHAR(MAX)='';
SELECT @products += Isnull(Jurisdiction, '') + ','
FROM @Split;
SELECT left(@products,len(@products)-1);
或使用For XML path()
set @products=(select ','+Jurisdiction from @Split for xml path(''))
select right(@products,len(@products)-1)
这可能对你有帮助
Declare @Split table( Jurisdiction nvarchar(max))
Declare @products varchar(MAX)=''
declare @count int=(select count(*) from @split)
declare @a int=1
Insert into @Split values ('a'),('b')
while(@a<@count)
begin
Select @products += Jurisdiction from @Split
set @a=@a+1
end
select @products
@Nida...您也可以使用 xml 路径...,但它会将所有值与逗号分隔符连接起来。我已经完成 xml 路径...可能会对您有所帮助...
dbo.columnnames中的样本值
Value One
Value Two
Value Three
Value Four
Value Five
查询
declare @lv_table table( column_values varchar(100))
declare @product_v varchar(max)
insert into @lv_table
select * from dbo.columnnames
set @product_v =(
select
Stuff(
(
SELECT ',' + column_values
FROM @lv_table
FOR XML PATH('')
), 1, 1, '') )
select @product_v
输出
Value One,Value Two,Value Three,Value Four,Value Five
我写了一个存储过程
Declare @Split table
(
Jurisdiction nvarchar(max)
)
Insert into @Split select Jurisdiction from tbLicence where AgentId =@AgentId;
Select * from @Split;
Declare @products varchar(MAX);
Select @products = Jurisdiction from @Split;
Select @products;
我想将@Split 列的所有值放入@products 变量中。 请注意,上面的代码仅将最后一行的列值放入@products。 请帮帮我!!!
首先用empty string
初始化变量。然后使用任何定界符附加所有行。使用这个。
DECLARE @products VARCHAR(MAX)='';
SELECT @products += Isnull(Jurisdiction, '') + ','
FROM @Split;
SELECT left(@products,len(@products)-1);
或使用For XML path()
set @products=(select ','+Jurisdiction from @Split for xml path(''))
select right(@products,len(@products)-1)
这可能对你有帮助
Declare @Split table( Jurisdiction nvarchar(max))
Declare @products varchar(MAX)=''
declare @count int=(select count(*) from @split)
declare @a int=1
Insert into @Split values ('a'),('b')
while(@a<@count)
begin
Select @products += Jurisdiction from @Split
set @a=@a+1
end
select @products
@Nida...您也可以使用 xml 路径...,但它会将所有值与逗号分隔符连接起来。我已经完成 xml 路径...可能会对您有所帮助...
dbo.columnnames中的样本值
Value One
Value Two
Value Three
Value Four
Value Five
查询
declare @lv_table table( column_values varchar(100))
declare @product_v varchar(max)
insert into @lv_table
select * from dbo.columnnames
set @product_v =(
select
Stuff(
(
SELECT ',' + column_values
FROM @lv_table
FOR XML PATH('')
), 1, 1, '') )
select @product_v
输出
Value One,Value Two,Value Three,Value Four,Value Five