设为首页 加入收藏

TOP

MSSQL纵列转横列
2015-11-21 01:33:36 来源: 作者: 【 】 浏览:0
Tags:MSSQL
?
上篇我们说到了横列转纵列,下面就来说下纵列转横列
?
1.建表
?
?
CREATE TABLE [dbo].[EndLongChangeAcross](
 [Id] [INT] IDENTITY(1,1) NOT NULL,
 [Name] [NVARCHAR](50) NOT NULL,
 [Chinese] [INT] NOT NULL,
 [English] [INT] NOT NULL,
 [Math] [INT] NOT NULL,
 CONSTRAINT [PK_EndLongChangeAcross] PRIMARY KEY CLUSTERED 
(
 [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[EndLongChangeAcross] ADD  CONSTRAINT [DF_EndLongChangeAcross_Chinese]  DEFAULT ((0)) FOR [Chinese]
GO

ALTER TABLE [dbo].[EndLongChangeAcross] ADD  CONSTRAINT [DF_EndLongChangeAcross_English]  DEFAULT ((0)) FOR [English]
GO

ALTER TABLE [dbo].[EndLongChangeAcross] ADD  CONSTRAINT [DF_EndLongChangeAcross_Math]  DEFAULT ((0)) FOR [Math]
GO

?

2.具体SQL
?
SELECT  Name ,
  '语文' AS 'Subject',
  Chinese AS 'Score'
FROM dbo.EndLongChangeAcross
UNION ALL
SELECT  Name ,
  '英语',
  English AS 'Score'
FROM dbo.EndLongChangeAcross
UNION ALL
SELECT  Name ,
  '数学' ,
  Math AS 'Score'
FROM dbo.EndLongChangeAcross
ORDER BY Name DESC

?

?
具体效果:

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQL SERVER 2012启动失败 because.. 下一篇成功部署SSIS中含有Oracle数据库..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: