27,580
社区成员
发帖
与我相关
我的任务
分享
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
CASE
WHEN CHARINDEX('(上)', a.任课教师) > 0 THEN
1
ELSE
0
END AS val
FROM
bb a;
这个语句显示出来的结果。全部是 0. 单独运行 charindex 可以找到。 真是奇了怪了。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
*/
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
*/