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

时间:2013-03-28 05:19:34

标签: sql sql-server sql-server-2008 select

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

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

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

我使用了findstring,但它没有用。

那么如何在Sql server 2008中实现这一点。

1 个答案:

答案 0 :(得分:5)

SELECT  *
FROM    TableName
WHERE   ',' + csvValue + ',' LIKE '%,' + @value + ',%'

作为建议,您需要将表格结构化为3表设计,假设您将Student映射到Subject。这似乎是Many-to-Many关系。

学生表

  • StudentID(PK)
  • StudentName
  • 其他栏目......

主题表

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

Student_Subject表

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