TSQL - 如何使用另一列搜索包含字符串的列?
TSQL - How do you search a column containing a string using another column?
我正在尝试根据最近的成绩列来隔离学校 ID。这显示了学生被划入哪些学校。我不确定如何根据列结果搜索字符串。隔离小学生的最佳方法是什么?
谢谢。
数据:
想要的结果:
SQL Fiddle 代码:(我无法正确构建架构。)
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
首先,你的数据结构很差。您不应该将列表存储在单个列中。每所学校的每个年级都应该有一个单独的 table 一行。或者,为学校的成绩设置最大和最小列 - 假设学校有连续的成绩。
但是,您可以使用 like
:
做您想做的事
select t.*
from #t1 t
where ',' + t.schoolgrades + ',' like '%,' + mostrecentgrade + ',%';
我正在尝试根据最近的成绩列来隔离学校 ID。这显示了学生被划入哪些学校。我不确定如何根据列结果搜索字符串。隔离小学生的最佳方法是什么?
谢谢。
数据:
想要的结果:
SQL Fiddle 代码:(我无法正确构建架构。)
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
首先,你的数据结构很差。您不应该将列表存储在单个列中。每所学校的每个年级都应该有一个单独的 table 一行。或者,为学校的成绩设置最大和最小列 - 假设学校有连续的成绩。
但是,您可以使用 like
:
select t.*
from #t1 t
where ',' + t.schoolgrades + ',' like '%,' + mostrecentgrade + ',%';