行列转换遇到的问题 我希望得到的结果如下铸件号 客户编码 进度 进度值2402C-A RFC010141 进度1 202402C-A RFC010141 进度2 302402C-A RFC010141 进度3 31 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 create table 生产订单计划(客户编码 varchar(10), 铸件号 varchar(20), 进度1 int,进度2 int, 进度3 int, 进度4 int)insert into 生产订单计划select 'RFC010141' , '2402C-A', 20 , 30 , 31,33 union all select 'RFC010142' , '2802D-XX', 40 , 0 , 37 , 56 union all select 'RFC010154' , '3333Z-3E', 50 , 9 , 45 , 50 select 铸件号,客户编码,进度,进度值from 生产订单计划unpivot(进度值 for 进度 in ( [进度1] ,[进度2] ,[进度3], [进度4]))t/*铸件号 客户编码 进度 进度值2402C-A RFC010141 进度1 202402C-A RFC010141 进度2 302402C-A RFC010141 进度3 312402C-A RFC010141 进度4 332802D-XX RFC010142 进度1 402802D-XX RFC010142 进度2 02802D-XX RFC010142 进度3 372802D-XX RFC010142 进度4 563333Z-3E RFC010154 进度1 503333Z-3E RFC010154 进度2 93333Z-3E RFC010154 进度3 453333Z-3E RFC010154 进度4 50*/ 如果还有其他的进度,那么加上就行:select 铸件号,客户编码,进度,进度值from 生产订单计划unpivot(进度值 for 进度 in ( [进度1] ,[进度2] ,[进度3], [进度4],[进度5],[进度6]))t 这个是动态语句:create table 生产订单计划(客户编码 varchar(10), 铸件号 varchar(20), 进度1 int,进度2 int, 进度3 int, 进度4 int)insert into 生产订单计划select 'RFC010141' , '2402C-A', 20 , 30 , 31,33 union all select 'RFC010142' , '2802D-XX', 40 , 0 , 37 , 56 union all select 'RFC010154' , '3333Z-3E', 50 , 9 , 45 , 50 godeclare @sql nvarchar(4000)set @sql = ''select @sql = @sql + ',['+name+']'from syscolumnswhere id = OBJECT_ID('生产订单计划') and name like '进度%'order by colidset @sql = 'select 铸件号,客户编码,进度,进度值 from 生产订单计划 unpivot ( 进度值 for 进度 in (' + stuff(@sql,1,1,'') + ') ) t' exec(@sql)/*铸件号 客户编码 进度 进度值2402C-A RFC010141 进度1 202402C-A RFC010141 进度2 302402C-A RFC010141 进度3 312402C-A RFC010141 进度4 332802D-XX RFC010142 进度1 402802D-XX RFC010142 进度2 02802D-XX RFC010142 进度3 372802D-XX RFC010142 进度4 563333Z-3E RFC010154 进度1 503333Z-3E RFC010154 进度2 93333Z-3E RFC010154 进度3 453333Z-3E RFC010154 进度4 50*/ 查询一张表中同一时间的内容? 如何替换字段值的前两位 SQL Compact3.5/4.0 如何调整字段顺序? 笔试题 求助 如何提高存储过程执行速度? 关于SQL Server数据驱动的问题 如何将access数据库导入到sql server 2000中 刚才的问题我没说清楚,再说清楚来问一问!解决了马上给分! DTS转移问题 各位帮帮我啊!弄了好久了 怎么样用asp+sql server7.0实现图片的上传? SQL求当日的前一个月日期 建立触发器后,报出外键错误
create table 生产订单计划
(
客户编码 varchar(10),
铸件号 varchar(20),
进度1 int,
进度2 int,
进度3 int,
进度4 int
)insert into 生产订单计划
select 'RFC010141' , '2402C-A', 20 , 30 , 31,33
union all select 'RFC010142' , '2802D-XX', 40 , 0 , 37 , 56
union all select 'RFC010154' , '3333Z-3E', 50 , 9 , 45 , 50 select 铸件号,客户编码,进度,进度值
from 生产订单计划
unpivot
(
进度值 for 进度 in ( [进度1] ,[进度2] ,[进度3], [进度4])
)t
/*
铸件号 客户编码 进度 进度值
2402C-A RFC010141 进度1 20
2402C-A RFC010141 进度2 30
2402C-A RFC010141 进度3 31
2402C-A RFC010141 进度4 33
2802D-XX RFC010142 进度1 40
2802D-XX RFC010142 进度2 0
2802D-XX RFC010142 进度3 37
2802D-XX RFC010142 进度4 56
3333Z-3E RFC010154 进度1 50
3333Z-3E RFC010154 进度2 9
3333Z-3E RFC010154 进度3 45
3333Z-3E RFC010154 进度4 50
*/
from 生产订单计划
unpivot
(
进度值 for 进度 in ( [进度1] ,[进度2] ,[进度3], [进度4],[进度5],[进度6])
)t
(
客户编码 varchar(10),
铸件号 varchar(20),
进度1 int,
进度2 int,
进度3 int,
进度4 int
)insert into 生产订单计划
select 'RFC010141' , '2402C-A', 20 , 30 , 31,33
union all select 'RFC010142' , '2802D-XX', 40 , 0 , 37 , 56
union all select 'RFC010154' , '3333Z-3E', 50 , 9 , 45 , 50
godeclare @sql nvarchar(4000)set @sql = ''select @sql = @sql + ',['+name+']'
from syscolumns
where id = OBJECT_ID('生产订单计划')
and name like '进度%'
order by colid
set @sql = 'select 铸件号,客户编码,进度,进度值
from 生产订单计划
unpivot
(
进度值 for 进度 in (' + stuff(@sql,1,1,'') + ') ) t'
exec(@sql)
/*
铸件号 客户编码 进度 进度值
2402C-A RFC010141 进度1 20
2402C-A RFC010141 进度2 30
2402C-A RFC010141 进度3 31
2402C-A RFC010141 进度4 33
2802D-XX RFC010142 进度1 40
2802D-XX RFC010142 进度2 0
2802D-XX RFC010142 进度3 37
2802D-XX RFC010142 进度4 56
3333Z-3E RFC010154 进度1 50
3333Z-3E RFC010154 进度2 9
3333Z-3E RFC010154 进度3 45
3333Z-3E RFC010154 进度4 50
*/