日期:2014-05-18  浏览次数:20511 次

一个sql查询问题,郁闷
有两表
ID                 姓名                 奖金
1                   aaa                   1000
2                   bbb                   2000
3                   ccc                   3000

用一条SQL语句得到如下结果(多条语句也可参考)
只显示一行:
aaa         1000         bbb         2000     ccc     3000


还有那位能介绍一本sql复杂语句的好书?(最好以sqlserver为例)

------解决方案--------------------
sql复杂语句的书? 邹建大哥的书还是不错的...另外在这里好多牛人写复杂语句的.
------解决方案--------------------
create table test(ID int,姓名 varchar(10),奖金 int)
insert test select 1, 'aaa ',1000
union all select 2, 'bbb ',2000
union all select 3, 'ccc ',3000

declare @s varchar(8000)
set @s= ' '
select @s=@s+ ',max(case 姓名 when ' ' '+姓名+ ' ' ' then 姓名 end),max(case 姓名 when ' ' '+姓名+ ' ' ' then 奖金 end) '
from test
select @s=@s+ ' from test '
select @s= 'select '+stuff(@s,1,1, ' ')
exec(@s)

drop table test
------解决方案--------------------
楼上的很好
------解决方案--------------------
declare @str as varchar(4000)
select @str= ' '
select @str =@str +姓名+space(2)+convert(varchar,奖金)+space(4) from test
select ltrim(@str)
------解决方案--------------------
还有那位能介绍一本sql复杂语句的好书?(最好以sqlserver为例)

楼主可以下载《SQLServer2000常用函数大全及个人收藏》,自感觉不错:
http://download.csdn.net/source/174331
------解决方案--------------------
declare @sql as varchar(4000)
select @sql= ' '
select @sql =@sql+ 姓名+space(1)+convert(varchar,奖金)+space(2) from test
select @sql
-----------------------------------
aaa 1000 bbb 2000 ccc 3000

------解决方案--------------------
《SQLServer2000常用函数大全及个人收藏》里面主要是邹建的一本书的sql语句,还是去买本原书好