Sql server SQL:查找列之间的整数
我遇到了以下问题:我有多所学校的数据,所以每所学校都有一个学校ID号SchlID。他们也有一个高等级和低等级的列为每一个类提供的LoGrd和HiGrd。我需要知道每所学校根据所有班级提供的分数。 例如,707学校提供了一个LoGrd 6和HiGrd 6的班级,这意味着只有六年级学生参加。他们还提供了一个LoGrd 6和HiGrd 8的课程,这意味着6、7和8年级的学生都会参加这个课程。另一方面,710学校为班级提供了logrd 9和higrd 12。所以我想在学校列上有输出,以及学校提供的每行一个年级的年级列表,如下所示 SchlID品位 707 6 707 7 707 8 710 9 710 10 710 11 710 12Sql server SQL:查找列之间的整数,sql-server,tsql,integer,Sql Server,Tsql,Integer,我遇到了以下问题:我有多所学校的数据,所以每所学校都有一个学校ID号SchlID。他们也有一个高等级和低等级的列为每一个类提供的LoGrd和HiGrd。我需要知道每所学校根据所有班级提供的分数。 例如,707学校提供了一个LoGrd 6和HiGrd 6的班级,这意味着只有六年级学生参加。他们还提供了一个LoGrd 6和HiGrd 8的课程,这意味着6、7和8年级的学生都会参加这个课程。另一方面,710学校为班级提供了logrd 9和higrd 12。所以我想在学校列上有输出,以及学校提供的每行一
谢谢大家! 下面是一些可以满足您需要的代码。我们使用递归CTE生成所有可能等级的列表。在这种情况下,它是1到15,这对于您的情况应该足够了。然后,我们将其加入学校表,以选择LoGrd和HiGrd之间的所有年级
CREATE TABLE school (SchID INT,LoGrd INT,HiGrd INT);
INSERT INTO school VALUES (707,6,9);
INSERT INTO school VALUES (710,10,12);
WITH AllPossibleGrades (N) AS (
SELECT 1 AS N
UNION ALL
SELECT R.N+1 AS N
FROM AllPossibleGrades R
WHERE R.N<=15
)
SELECT S.SchID,AG.N AS Grade
FROM school S
INNER JOIN AllPossibleGrades AG ON AG.N>=S.LoGrd AND AG.N<=S.HiGrd;
除了这个问题之外,您还应该包括到目前为止的代码,并努力回答您的问题,因为堆栈溢出不是一种代码编写服务。还请包括一个特定的问题或错误,以及在问题本身中重现该问题所需的最短代码。请参阅:并阅读。尝试搜索数字表或理货表,您可能会找到一些适用的信息。非常感谢!我在末尾添加了Distinct命令,选择Distinct S.SchID,Ag.N作为年级,这样它只会给我提供唯一的年级,因为一个年级有多少并不重要,只是学校教的是什么年级。我感谢你的帮助!!!