TSQL - 如何使用另一列搜索包含字符串的列?

时间:2016-07-20 14:23:27

标签: sql sql-server tsql sql-server-2016

我正在尝试根据最新的成绩列来隔离学校ID。这显示了学生划分的学校。我不确定如何根据列结果搜索字符串。孤立学生的最佳方法是什么?

谢谢。

数据:

enter image description here

期望的结果:

enter image description here

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

1 个答案:

答案 0 :(得分:3)

首先,您的数据结构非常糟糕。您不应该将列表存储在单个列中。你应该有一个单独的表,每个学校的每个年级都有一行。或者,在学校中有成绩的最大和最小列 - 假设学校有连续的成绩。

但是,你可以使用like

做你想做的事
select t.*
from #t1 t
where ',' + t.schoolgrades + ',' like '%,' + mostrecentgrade + ',%';