Tsql 如何从带有变量的表中选择带括号的列
我有一个简单的表,它有以下列。我想创建一个WHILE循环,它将像这样返回每一列。我该怎么做Tsql 如何从带有变量的表中选择带括号的列,tsql,while-loop,delimiter,Tsql,While Loop,Delimiter,我有一个简单的表,它有以下列。我想创建一个WHILE循环,它将像这样返回每一列。我该怎么做 create table #bracket_example (row_num int identity(0,1), [0] int, [1] int, [2] int, [3] int) insert #bracket_example values (25,35,45,55) insert #bracket_example values (32,53,98,67) insert #bracket_exam
create table #bracket_example (row_num int identity(0,1), [0] int, [1] int, [2] int, [3] int)
insert #bracket_example values (25,35,45,55)
insert #bracket_example values (32,53,98,67)
insert #bracket_example values (33,44,55,66)
insert #bracket_example values (11,14,15,16)
declare @j int
set @j = 0
while @j < 4
begin
select '[' + cast(@j as varchar(2)) + ']' from #bracket_example
set @j = @j + 1
end
因此,它不是列出值,而是列出列名。我如何才能让它改为列出值?如果我理解正确,您需要使用DynamicSql。请试试这个:
while @j < 4
begin
EXEC sp_executesql 'select [' + cast(@j as varchar(2)) + '] from #bracket_example'
set @j = @j + 1
end
如果我理解正确,您需要使用DynamicSql。请试试这个:
while @j < 4
begin
EXEC sp_executesql 'select [' + cast(@j as varchar(2)) + '] from #bracket_example'
set @j = @j + 1
end
试试这个:
create table #bracket_example (row_num int identity(0,1), [0] int, [1] int, [2] int, [3] int)
insert #bracket_example values (25,35,45,55)
insert #bracket_example values (32,53,98,67)
insert #bracket_example values (33,44,55,66)
insert #bracket_example values (11,14,15,16)
declare @j int
declare @DynSQL varchar(50)
set @j = 0
while @j < 4
begin
set @DynSQL = 'select [' + cast(@j as varchar(2)) + '] as Column_' + cast(@j as varchar(10)) + ' from #bracket_example'
EXEC (@DynSQL)
set @j = @j + 1
end
试试这个:
create table #bracket_example (row_num int identity(0,1), [0] int, [1] int, [2] int, [3] int)
insert #bracket_example values (25,35,45,55)
insert #bracket_example values (32,53,98,67)
insert #bracket_example values (33,44,55,66)
insert #bracket_example values (11,14,15,16)
declare @j int
declare @DynSQL varchar(50)
set @j = 0
while @j < 4
begin
set @DynSQL = 'select [' + cast(@j as varchar(2)) + '] as Column_' + cast(@j as varchar(10)) + ' from #bracket_example'
EXEC (@DynSQL)
set @j = @j + 1
end
在你的问题中加入预期的结果总是好的。你的问题不是很清楚。你想从你的循环中得到什么?在你的问题中加入预期的结果总是好的。你的问题不是很清楚。你们想从循环中得到什么?谢谢你们的解决方案。事实证明,我需要一个WHERE语句来过滤掉括号_示例中的一些数据,所以我将对本节进行硬编码。我已经知道我需要的确切行了。谢谢你们的解决方案。事实证明,我需要一个WHERE语句来过滤掉括号_示例中的一些数据,所以我将对本节进行硬编码。我已经知道我需要的确切行数。