求一Sql语句,在线等。。。 用case when 语句,自己查查帮助写吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /*范例表create table 表1 (號數 char(10), 成績 integer, 科目 char(10) ) insert into 表1 select '1',60,'数学' union select '1',43,'物理' union select '1',100,'语文' union select '2',87,'语文' union select '2',99,'数学' union select '2',89,'物理' union select '2',87,'语文' */Create procedure RowToColumn @Table varchar(30), --表名 @MasterField varchar(30),--待转名称列名 char字段 @SlaveField varchar(30),--待转数据列名 int型字段 @GroupID varchar(30)--分组ID as--调用方法 RowToColumn '表1','科目','成績','號數'--by jinjazz 环境 SQLServer2000begin DECLARE @mSQL VARCHAR(8000) set @msql = 'DECLARE @SQL VARCHAR(8000)' set @msql = @msql + ' set @SQL= ''select ' + @GroupID + '''' set @msql = @msql + ' SELECT @SQL= @SQL+'',max(CASE WHEN ' + @MasterField + '=''''''+' + @MasterField + '+'''''' then ' + @SlaveField + ' else 0 end )[''+' + @MasterField + '+'']'' from(select distinct ' + @MasterField + ' from ' + @Table + ') a' set @msql = @msql + ' SET @SQL=@SQL+ '' from ' + @Table + ' group by ' + @GroupID + '''' set @msql = @msql + ' exec(@SQL)' exec(@msql)end反过来,列转行就简单了..直接union即可create table tt (color char(10), S integer, M integer, L integer)insert into tt select 'RED', 0 , 2, 3union select 'WHI', 1, 1, 2union select 'BLK', 3, 3, 2select * from ttselect color,size='s',qty=s from ttunionselect color,size='m',qty=m from ttunionselect color,size='l',qty=l from ttorder by colordrop table tt 行变列http://community.csdn.net/Expert/topic/4324/4324734.xml?temp=.5537836 动态表查询 请问在导入过程中,没有设置自增列,导入成功后如何设置自增列? 一個查詢語句﹐既簡單也難 求SQL脚本:远程跨库表之间的导入 BULK INSERT 分割符问题 sql sp3 补丁 没有效果 如何用pb8连接sql server2000 SQL求救!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 关于sql server中用户的问题。 mysql 数据库中取出数据显示百分比~~ 求大侠帮忙 怎样获得昨天的所有记录? 关于sqlserver2000的学习问题,请不吝指教~!thanks
create table 表1 (
號數 char(10),
成績 integer,
科目 char(10) )
insert into 表1 select '1',60,'数学'
union select '1',43,'物理'
union select '1',100,'语文'
union select '2',87,'语文'
union select '2',99,'数学'
union select '2',89,'物理'
union select '2',87,'语文'
*/
Create procedure RowToColumn
@Table varchar(30), --表名
@MasterField varchar(30),--待转名称列名 char字段
@SlaveField varchar(30),--待转数据列名 int型字段
@GroupID varchar(30)--分组ID
as
--调用方法 RowToColumn '表1','科目','成績','號數'
--by jinjazz 环境 SQLServer2000
begin
DECLARE @mSQL VARCHAR(8000)
set @msql = 'DECLARE @SQL VARCHAR(8000)'
set @msql = @msql + ' set @SQL= ''select ' + @GroupID + ''''
set @msql = @msql + ' SELECT @SQL= @SQL+'',max(CASE WHEN ' +
@MasterField + '=''''''+' + @MasterField + '+'''''' then ' + @SlaveField +
' else 0 end )[''+' + @MasterField + '+'']'' from(select distinct ' +
@MasterField + ' from ' + @Table + ') a'
set @msql = @msql + ' SET @SQL=@SQL+ '' from ' + @Table + ' group by ' +
@GroupID + ''''
set @msql = @msql + ' exec(@SQL)'
exec(@msql)
end
反过来,列转行就简单了..直接union即可
create table tt (color char(10), S integer, M integer, L integer)
insert into tt
select 'RED', 0 , 2, 3
union select
'WHI', 1, 1, 2
union select
'BLK', 3, 3, 2select * from ttselect color,size='s',qty=s from tt
union
select color,size='m',qty=m from tt
union
select color,size='l',qty=l from tt
order by colordrop table tt
http://community.csdn.net/Expert/topic/4324/4324734.xml?temp=.5537836