【发布时间】:2021-04-05 18:34:25
【问题描述】:
我在这个主题中有讲师表、他们的科目和经验:
| Full Name | varchar(30) |
| Experience | int |
| Subj | varchar(10) |
我必须为每个主题获取 exp % 5 = 0 的讲师序列,用逗号分隔。喜欢
| subj | names tuple |
|---|---|
| subj1 | lecturer_name1, lecturer_name2, ... |
| subj2 | lecturer_name1, lecturer_name2, ... |
| subj3 | lecturer_name1, lecturer_name2, ... |
CREATE PROCEDURE get_unqualified_lectures
AS
DECLARE @subj varchar(10)
DECLARE my_cur CURSOR FOR
SELECT DISTINCT(subj) FROM Lecturers
OPEN my_cur
DECLARE @res_table TABLE (subj varchar(20), names varchar(max))
DECLARE names_tupple varchar(max)
FETCH NEXT FROM my_cur INTO @subj
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @names_tupple = FullName FROM Lecturers WHERE Experience % 5 = 0
// I have no idea how to concat the names
INSERT INTO @res_table VALUES(@subj, @names_tupple)
FETCH NEXT FROM my_cur INTO @subj
END
CLOSE my_cur
DEALLOCATE my_cur
GO
你会推荐如何正确修改它,或者比我想出的更好的东西吗?
注意:我可能错过了什么或做错了什么。没有经过测试,我只是用纸和笔。
【问题讨论】:
标签: sql sql-server tsql cursor