确定SQL中的列中是否有字符串可用

Hit*_*esh 1 sql sql-server select sql-server-2008

我有一个包含字段ID,名称和SubjectID的表.

其中SubjectID具有许多带逗号分隔符的值,例如.1,5,6,8

现在,如果传递参数5,那么我想找到所有在SubjectID中有5的行.

我使用了findstring,但它不起作用.

那么我怎样才能在Sql server 2008中实现这一点.

Joh*_*Woo 5

SELECT  *
FROM    TableName
WHERE   ',' + csvValue + ',' LIKE '%,' + @value + ',%'
Run Code Online (Sandbox Code Playgroud)

作为一个建议,你需要将你的表结构化为3表设计,假设你就像映射StudentSubject.这似乎是Many-to-Many关系.

学生表

  • 学生ID(PK)
  • 学生姓名
  • 其他栏目......

主题表

  • SubjectID
  • 主旨名称
  • 其他栏目......

Student_Subject表

  • StudentID(FK),同时将主键与SubjectID复合
  • SubjectID(FK)