日期:2014-05-17 浏览次数:20572 次
if object_id('[tb]') is not null drop table [tb]
create table tb(姓名 varchar(10) ,性别 varchar(2),地址 varchar(10), 语文 int , 数学 int , 物理 int)
insert into tb values('张三','男','广东',74,83,93)
insert into tb values('李四','女','深圳',74,84,94)
insert into tb values('张五','男','江西',74,84,94)
insert into tb values('杨六','女','北京',74,84,94)
insert into tb values('王四','男','大连',74,84,94)
go
select * from tb
declare @sql varchar(8000)
select @sql = isnull(@sql + ' union all ' , '' ) + ' select 姓名 ,性别,地址, [课程] = ' + quotename(Name , '''') + ' , [分数] = ' + quotename(Name) + ' from tb'
from syscolumns
where name! = N'姓名 ,性别,地址' and ID = object_id('tb')
order by colid asc
exec(@sql + ' order by 姓名 ,性别,地址')
/*这样写报错:
服务器: 消息 245,级别 16,状态 1,行 1
将 varchar 值 '张三' 转换为数据类型为 int 的列时发生语法错误。
*/
where name! = N'姓名 ,性别,地址' and ID = object_id('tb')
where name NOT IN ('姓名','性别','地址') and ID = object_id('tb')