Sql server 2008 在SQL中将行转换为列

Sql server 2008 在SQL中将行转换为列,sql-server-2008,Sql Server 2008,我有一个用户定义的函数,可以解析字符串。我的字符串看起来像1@>@100。因此,当我调用我的函数时,它返回三条记录,分别为1、>和100。我需要将这些结果作为列插入临时表中 我的临时表有三列 或您可以考虑,我有临时表表,只有一列3行,我需要把结果转换成3列。< /P> 因此,从tmptable中选择*将给出3行,但我需要将所有3行显示为列。 提前谢谢。除非我误解了这个问题: 在tablename中插入值1,“>”,100 除非第一列和第三列是字符串,否则您也可以在它们周围加上单引号。您可以尝试向

我有一个用户定义的函数,可以解析字符串。我的字符串看起来像1@>@100。因此,当我调用我的函数时,它返回三条记录,分别为1、>和100。我需要将这些结果作为列插入临时表中

我的临时表有三列

或您可以考虑,我有临时表表,只有一列3行,我需要把结果转换成3列。< /P> 因此,从tmptable中选择*将给出3行,但我需要将所有3行显示为列。


提前谢谢。

除非我误解了这个问题:

在tablename中插入值1,“>”,100


除非第一列和第三列是字符串,否则您也可以在它们周围加上单引号。

您可以尝试向临时表添加标识并执行透视:

declare @t table(id int identity(1,1), strfrag varchar(8))
insert into @t values
('1'), ('>'), ('100');

select [1],[2],[3] from @t
pivot (
    max(strfrag)
    for id in ([1],[2],[3])
) as pt;
结果:

1        2        3
-------- -------- --------
1        >        100

您只是要求SQL插入值吗?1>100作为3行,我需要将其作为列插入临时表中。。。上面的insert语句应该正确地将这三个值作为一列插入,但您仍将在其他地方保留需要删除的三行。您复制并粘贴了这三行吗?我只是将上面的内容粘贴到SQL2008中,没有得到任何错误。在2005年,我唯一需要改变的就是插入到零件中。但没有轴心错误。