0

我有一张这样的桌子:

create table testjob
(
  jobid int,  
  jobname varchar(100),  
  time float,  
  name varchar(50)  
)

和该表中的样本数据:

insert into testjob values ( 1001,'java work',4.5,'arjun')   
insert into testjob values ( 1005,'sql work',10,'arjun')  
insert into testjob values ( 1010,'.net work',7.5,'arjun')  
insert into testjob values ( 1040,'java work',5.5,'ravi')  
insert into testjob values ( 1023,'php work',2.5,'arjun')  
insert into testjob values ( 1027,'.net work',3.5,'ravi')

我想创建一个过程,以便我的输出如下 html 格式,如下面的 sql

我们将编写 select * from testjob 但我希望使用存储过程左右将输出显示在 html 中

Name    Jobname     Time

arjun   Javawork     4.5  
arjun   sql work     10  
arjun   .net work    7.5  
ravi     java work   5.5   
arjun    php work    2.5  
ravi     .net work   3.5  
4

1 回答 1

0

应该这样做,返回数据的 vanilla table/tr/td 形式。

select
    '<table>'+
    (
    select '<tr><td>'+name+'</td><td>'+jobname+'</td><td>'+cast(time as varchar(10))+'</td>'
    from testjob
    for xml path(''),root('a'),type
    ).value('(/a)[1]','nvarchar(max)')
    +'</table>';

现在,如果您想要一些特定的行顺序,您将ORDER BY在 FOR XML 行之前添加一个。

于 2012-10-05T04:59:51.267 回答