name
  张三
  李四
想显示成 张三  李四请问怎么写SQL语句。谢谢

解决方案 »

  1.   

    行列转换,请查看:http://topic.csdn.net/u/20080614/17/22e73f33-f071-46dc-b9bf-321204b1656f.html?32350
      

  2.   

    我以前弄过没那么复杂,有个函数可以转记得,select name1 from tablename 请知道的直接发SQL语句
      

  3.   

    select 
    max(case name when '张三' then name end ) name1,
    max(case name when '李四' then name end ) name2
    from tablename
      

  4.   

    可能是张三 李四 很多啊。。不能写死了。select name1 from tablename  这个查询出来时列 怎么改成横啊
      

  5.   


    以下是列转行,没有行转列的单条语句
    select * from sys.sysobjects a 
    INNER JOIN sys.syscolumns b ON b.id = a.id 
    where a.name='表名'
      

  6.   

    Copy一段代码供你参考create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)
    insert into tb values('张三' , '语文' , 74)
    insert into tb values('张三' , '数学' , 83)
    insert into tb values('张三' , '物理' , 93)
    insert into tb values('李四' , '语文' , 74)
    insert into tb values('李四' , '数学' , 84)
    insert into tb values('李四' , '物理' , 94)
    go--SQL SERVER 2000 动态SQL,指课程不止语文、数学、物理这三门课程。(以下同)
    declare @sql varchar(8000)
    set @sql = 'select 姓名 '
    select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'
    from (select distinct 课程 from tb) as a
    set @sql = @sql + ' from tb group by 姓名'
    exec(@sql)