一个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语句,还是去买本原书好