我正在尝试根据最新的成绩列来隔离学校ID。这显示了学生划分的学校。我不确定如何根据列结果搜索字符串。孤立学生的最佳方法是什么?
谢谢。
数据:
期望的结果:
SQL小提琴代码:(我无法正确构建架构。)
CREATE TABLE #T1 (
StudentID varchar(10),
AddressID varchar(10),
SchoolID varchar(10),
SchoolGrades varchar(100),
MostRecentGrade varchar(10),
)
INSERT INTO #T1
VALUES
('7777777','297','118','PK,KK,01,02,03,04,05,MG','10'),
('7777777','297','338','06,07,08,MG','10'),
('7777777','297','528','09,10,11,12,MG','10')
SELECT *
FROM #T1
答案 0 :(得分:3)
首先,您的数据结构非常糟糕。您不应该将列表存储在单个列中。你应该有一个单独的表,每个学校的每个年级都有一行。或者,在学校中有成绩的最大和最小列 - 假设学校有连续的成绩。
但是,你可以使用like
:
select t.*
from #t1 t
where ',' + t.schoolgrades + ',' like '%,' + mostrecentgrade + ',%';