在单个单元格中基于多个条件选择记录

时间:2018-09-25 11:51:27

标签: sql sql-server tsql

我正在使用一个数据库,该数据库设置为显示多个值,并用逗号分隔,如下所示:

txtSiblingsYearList
7,4
9,6
8,3,N
8,3,N
5,3
5,3

我需要能够对此进行查询,并且只带回具有R,N,1、2、3、4、5、6中至少2个的记录

我不确定这是否可以通过将数据存储在数据库表中的方式来完成。有谁知道做到这一点的方法。我当前的查询如下:

    SELECT 
      [txtSchoolID]
      ,[txtTitle]
      ,[txtForename]
      ,[txtSurname]       
      ,[txtForm]
      ,[intNCYear]      
      ,[intFamily]      
      ,[txtSiblingsIDList]
      ,[txtSiblingsNameList]
      ,[txtSiblingsFormList]
      ,[txtSiblingsYearList]      
  FROM [iSAMS].[dbo].[TblPupilManagementPupils]
  Where (intSystemStatus = 1) 
  AND (intNCYear <7) 
  AND (txtSchoolID NOT LIKE txtSiblingsIDList)  
  Order By intFamily

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

您不应以逗号分隔的字符串存储值列表。那不是SQL的处理方式。结果查询无法优化,字符串函数也不是SQL的优势。

如果您坚持使用这种格式,则可以添加匹配项的数量:

do