我有一个用户定义的函数来分析字符串。我的字符串看起来像[email protected]>@100
。所以当我调用我的函数时,它会返回三个记录,分别为1,>和100.我需要将这些结果作为列插入到临时表中。将行转换为SQL中的列
我的临时表有三列。
或者你可以考虑我有TEMP TABLE(表只有一列)用3行,我需要将结果转换成3列。
so select * from #tmptable会给我3行,但我需要显示所有3行作为列。 在此先感谢。
我有一个用户定义的函数来分析字符串。我的字符串看起来像[email protected]>@100
。所以当我调用我的函数时,它会返回三个记录,分别为1,>和100.我需要将这些结果作为列插入到临时表中。将行转换为SQL中的列
我的临时表有三列。
或者你可以考虑我有TEMP TABLE(表只有一列)用3行,我需要将结果转换成3列。
so select * from #tmptable会给我3行,但我需要显示所有3行作为列。 在此先感谢。
你可以尝试添加一个身份到temp表,并执行PIVOT:
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
上面的查询给出错误说'max'附近的语法错误 – jvm 2012-02-17 20:27:28
你完全复制和粘贴?我只是将上面的代码粘贴到SQL 2008中,并没有发生任何错误。在2005年,我不得不改变的只是插入。但没有枢轴错误。 – 2012-02-17 20:44:09
你只是问了SQL插入值? – David 2012-02-14 16:40:15