sql将一行数据显示成一列的方法

在我的数据库中有这样的记录
ID NAME
1 a
1 b
1 c
2 a
2 b
2 c
现在 我想把他们做成一个视图 显示方式为
ID name1 name2 name3
1 a b c
2 a b c
请问高手 这个问题怎么解决
给个sql语句的大概模型就行

这个不能用视图完成,因为视图是基本固定的结构,应该用存储过程,网上搜一下行列转换存储过程另外,数据都是在程序中使用,在程序中写代码反而更方便,比存储过程还好用,快,方便 。如果你硬要一个视图,我试写一下把 tb改成你的表名吧。select id ,(select name from tb where id = x.id and name ='a') as namea,(select name from tb where id = x.id and name ='b') as nameb,(select name from tb where id = x.id and name ='c') as namec,from tb x group by id
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-21
写个列转行存储过程(能枚举不同数据个数),视图是做不到的
第2个回答  2013-08-21
这件事不应该由数据库来做,而是应该用编程工具来做,你把按行取出的数据,按列放入显示控件不就得了?另外,这也看你用哪种数据库,象SQL2005直接就提供这种功能,但SQL2000就没有。
相似回答