如何改变数据显示方式

wwfxgm 2016-12-15 06:57:32


我想改变成下图所示。有没有什么好的办法?



表的结构代码:

DROP TABLE [dbo].[BB]
GO
CREATE TABLE [dbo].[BB] (
[任课教师] nvarchar(255) NULL ,
[课程名称] nvarchar(255) NULL ,
[授课班级] nvarchar(255) NULL ,
[学时] nvarchar(255) NULL ,
[学生数] nvarchar(255) NULL
)


GO

-- ----------------------------
-- Records of BB
-- ----------------------------
INSERT INTO [dbo].[BB] ([任课教师], [课程名称], [授课班级], [学时], [学生数]) VALUES (N'李一平(上)', N'就业指导', N'A13生技,A13生科', N'12', N'66')
GO
GO
INSERT INTO [dbo].[BB] ([任课教师], [课程名称], [授课班级], [学时], [学生数]) VALUES (N'李子树(上)', N'就业指导', N'A13计算机,A13资环', N'12', N'55')
GO
GO
INSERT INTO [dbo].[BB] ([任课教师], [课程名称], [授课班级], [学时], [学生数]) VALUES (N'李子树(下)', N'大学生职业生涯规划与就业指导', N'A16生技,A16生科', N'12', N'58')
GO
GO
INSERT INTO [dbo].[BB] ([任课教师], [课程名称], [授课班级], [学时], [学生数]) VALUES (N'李子树(下)', N'大学生职业生涯规划与就业指导', N'A16计算机1,A16计算机2', N'12', N'62')
GO


...全文
143 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwfxgm 2016-12-16
  • 打赏
  • 举报
回复
引用 6 楼 roy_88 的回复:
'(上)'--改为"上",去掉括号试试
版主。找到问题原因了。 上次另外一个版主说 新版sql server2016 linux版本出来了,我安装了一个。一直在测试。结果今天遇到charindex。悲剧了,测试了半天,换到windows系统下面的sql server2016.一点问题也没有。 在linux的版本就是不行。
中国风 2016-12-16
  • 打赏
  • 举报
回复
'(上)'--改为"上",去掉括号试试
wwfxgm 2016-12-16
  • 打赏
  • 举报
回复
SELECT
	CASE
WHEN CHARINDEX('(上)', a.任课教师) > 0 THEN
	1
ELSE
	0
END AS val
FROM
	bb a;
这个语句显示出来的结果。全部是 0. 单独运行 charindex 可以找到。 真是奇了怪了。
wwfxgm 2016-12-16
  • 打赏
  • 举报
回复
会不会是 括号的缘故,我用了中文的括号也试过,英文状态下 输入的括号也试过。都无法找出来,感觉charindex就是找不出字符的位置。
wwfxgm 2016-12-16
  • 打赏
  • 举报
回复
引用 2 楼 roy_88 的回复:
e.g.
DROP TABLE [dbo].[BB]
GO
CREATE TABLE [dbo].[BB] (
[任课教师] nvarchar(255) NULL ,
[课程名称] nvarchar(255) NULL ,
[授课班级] nvarchar(255) NULL ,
[学时] nvarchar(255) NULL ,
[学生数] nvarchar(255) NULL 
)


GO

-- ----------------------------
-- Records of BB
-- ----------------------------
INSERT INTO [dbo].[BB] ([任课教师], [课程名称], [授课班级], [学时], [学生数]) VALUES (N'李一平(上)', N'就业指导', N'A13生技,A13生科', N'12', N'66')
GO
GO
INSERT INTO [dbo].[BB] ([任课教师], [课程名称], [授课班级], [学时], [学生数]) VALUES (N'李子树(上)', N'就业指导', N'A13计算机,A13资环', N'12', N'55')
GO
GO
INSERT INTO [dbo].[BB] ([任课教师], [课程名称], [授课班级], [学时], [学生数]) VALUES (N'李子树(下)', N'大学生职业生涯规划与就业指导', N'A16生技,A16生科', N'12', N'58')
GO
GO
INSERT INTO [dbo].[BB] ([任课教师], [课程名称], [授课班级], [学时], [学生数]) VALUES (N'李子树(下)', N'大学生职业生涯规划与就业指导', N'A16计算机1,A16计算机2', N'12', N'62')
GO

SELECT  LEFT(a.[任课教师], CHARINDEX('(', a.[任课教师] + '(') - 1) AS [任课教师] ,
        a.[课程名称] ,
        a.[授课班级] ,
        a.[学时] ,
        a.[学生数] ,
        CASE WHEN CHARINDEX('(上)', a.任课教师) > 0
             THEN RTRIM(DATENAME(yy, GETDATE()) - 1) + '-' + DATENAME(yy,
                                                              GETDATE())
             ELSE DATENAME(yy, GETDATE()) + '-' + RTRIM(DATENAME(yy, GETDATE())
                                                        + 1)
        END AS XN,
		b.XQ
FROM    BB AS a
	INNER JOIN (SELECT [课程名称],COUNT(DISTINCT 任课教师) AS XQ FROM BB GROUP BY [课程名称]) AS b ON a.[课程名称]=b.[课程名称]
ORDER BY XN;
/*
任课教师	课程名称	授课班级	学时	学生数	XN	XQ
李一平	就业指导	A13生技,A13生科	12	66	2015-2016	2
李子树	就业指导	A13计算机,A13资环	12	55	2015-2016	2
李子树	大学生职业生涯规划与就业指导	A16生技,A16生科	12	58	2016-2017	1
李子树	大学生职业生涯规划与就业指导	A16计算机1,A16计算机2	12	62	2016-2017	1
*/
版主,我关键是这里找不出来,不知道你咋是成功的。CASE WHEN CHARINDEX('(上)', a.任课教师) > 0 THEN RTRIM(DATENAME(yy, GETDATE()) - 1) + '-' + DATENAME(yy, GETDATE()) ELSE DATENAME(yy, GETDATE()) + '-' + RTRIM(DATENAME(yy, GETDATE()) + 1) END AS XN 这里,我永远都是执行else 后面的语句。也就是2016-2017 的结果。
中国风 2016-12-15
  • 打赏
  • 举报
回复
e.g.
DROP TABLE [dbo].[BB]
GO
CREATE TABLE [dbo].[BB] (
[任课教师] nvarchar(255) NULL ,
[课程名称] nvarchar(255) NULL ,
[授课班级] nvarchar(255) NULL ,
[学时] nvarchar(255) NULL ,
[学生数] nvarchar(255) NULL 
)


GO

-- ----------------------------
-- Records of BB
-- ----------------------------
INSERT INTO [dbo].[BB] ([任课教师], [课程名称], [授课班级], [学时], [学生数]) VALUES (N'李一平(上)', N'就业指导', N'A13生技,A13生科', N'12', N'66')
GO
GO
INSERT INTO [dbo].[BB] ([任课教师], [课程名称], [授课班级], [学时], [学生数]) VALUES (N'李子树(上)', N'就业指导', N'A13计算机,A13资环', N'12', N'55')
GO
GO
INSERT INTO [dbo].[BB] ([任课教师], [课程名称], [授课班级], [学时], [学生数]) VALUES (N'李子树(下)', N'大学生职业生涯规划与就业指导', N'A16生技,A16生科', N'12', N'58')
GO
GO
INSERT INTO [dbo].[BB] ([任课教师], [课程名称], [授课班级], [学时], [学生数]) VALUES (N'李子树(下)', N'大学生职业生涯规划与就业指导', N'A16计算机1,A16计算机2', N'12', N'62')
GO

SELECT  LEFT(a.[任课教师], CHARINDEX('(', a.[任课教师] + '(') - 1) AS [任课教师] ,
        a.[课程名称] ,
        a.[授课班级] ,
        a.[学时] ,
        a.[学生数] ,
        CASE WHEN CHARINDEX('(上)', a.任课教师) > 0
             THEN RTRIM(DATENAME(yy, GETDATE()) - 1) + '-' + DATENAME(yy,
                                                              GETDATE())
             ELSE DATENAME(yy, GETDATE()) + '-' + RTRIM(DATENAME(yy, GETDATE())
                                                        + 1)
        END AS XN,
		b.XQ
FROM    BB AS a
	INNER JOIN (SELECT [课程名称],COUNT(DISTINCT 任课教师) AS XQ FROM BB GROUP BY [课程名称]) AS b ON a.[课程名称]=b.[课程名称]
ORDER BY XN;
/*
任课教师	课程名称	授课班级	学时	学生数	XN	XQ
李一平	就业指导	A13生技,A13生科	12	66	2015-2016	2
李子树	就业指导	A13计算机,A13资环	12	55	2015-2016	2
李子树	大学生职业生涯规划与就业指导	A16生技,A16生科	12	58	2016-2017	1
李子树	大学生职业生涯规划与就业指导	A16计算机1,A16计算机2	12	62	2016-2017	1
*/
中国风 2016-12-15
  • 打赏
  • 举报
回复
e.g.
SELECT LEFT([任课教师],CHARINDEX('(',[任课教师]+'(')-1) AS [任课教师], [课程名称], [授课班级], [学时], [学生数] FROM BB
/*
任课教师	课程名称	授课班级	学时	学生数
李一平	就业指导	A13生技,A13生科	12	66
李子树	就业指导	A13计算机,A13资环	12	55
李子树	大学生职业生涯规划与就业指导	A16生技,A16生科	12	58
李子树	大学生职业生涯规划与就业指导	A16计算机1,A16计算机2	12	62
*/
源码链接: https://pan.quark.cn/s/a4b39357ea24 Language: 中文 欢迎来到戈戈圈! 当你点开这个存储库的时候,你会看到戈戈圈的图标↓ 本图片均在知识共享 署名-相同方式共享 3.0(CC BY-SA 3.0)许可协议下提供,如有授权遵照授权协议使用。 那么恭喜你,当你看到这个图标的时候,就代表着你已经正式成为了一名戈团子啦! 欢迎你来到这个充满爱与希望的大家庭! 「与大家创造更多快乐,与人们一起改变世界。 」 戈戈圈是一个在中国海南省诞生的创作企划,由王戈wg的妹妹于2018年7月14日正式公开。 戈戈圈的创作类型广泛,囊括插画、小说、音乐等各种作品类型。 戈戈圈的目前成员: Contributors 此外,支持戈戈圈及本企划的成员被称为“戈团子”。 “戈团子”一词最初来源于2015年出生的名叫“团子”的大熊猫,也因为一种由糯米包裹着馅料蒸熟而成的食品也名为“团子”,不仅有团圆之意,也蕴涵着团结友爱的象征意义和大家的美好期盼,因此我们最终于2021年初决定命名戈戈圈的粉丝为“戈团子”。 如果你对戈戈圈有兴趣的话,欢迎加入我们吧(σ≧︎▽︎≦︎)σ! 由于王戈wg此前投稿的相关视频并未详细说明本企划的信息,且相关视频的表述极其模糊,我们特此创建这个存储库,以文字的形式向大家介绍戈戈圈。 戈戈圈自2018年7月14日成立至今,一直以来都秉持着包容开放、和谐友善的原则。 我们深知自己的责任和使命,始终尊重社会道德习俗,严格遵循国家法律法规,为维护社会稳定和公共利益做出了积极的贡献。 因此,我们不允许任何人或组织以“戈戈圈”的名义在网络平台或现实中发布不当言论,同时我们也坚决反对过度宣传戈戈圈的行为,包括但不限于与戈戈圈无关的任何...

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧