Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL:查找列之间的整数_Sql Server_Tsql_Integer - Fatal编程技术网

Sql server SQL:查找列之间的整数

Sql 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。所以我想在学校列上有输出,以及学校提供的每行一

我遇到了以下问题:我有多所学校的数据,所以每所学校都有一个学校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 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作为年级,这样它只会给我提供唯一的年级,因为一个年级有多少并不重要,只是学校教的是什么年级。我感谢你的帮助!!!