在单个单元格中根据多个条件选择记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在单个单元格中根据多个条件选择记录相关的知识,希望对你有一定的参考价值。

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

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

我需要能够查询这个并且只返回至少有2个R,N,1,2,3,4,5,6的记录

鉴于数据存储在数据库表中的方式,我不确定这是否可以完成。有谁知道这样做的方法。我当前的查询如下:

    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

任何帮助赞赏。

答案

您不应该以逗号分隔的字符串存储值列表。这不是SQL的做事方式。生成的查询无法优化,字符串函数不是SQL的强项。

如果你坚持这种格式,你可以加上匹配的数量:

where ( (case when ',' + txtSiblingsYearList + ',' like '%,R,%' then 1 else 0 end) +
        (case when ',' + txtSiblingsYearList + ',' like '%,N,%' then 1 else 0 end) +
        (case when ',' + txtSiblingsYearList + ',' like '%,1,%' then 1 else 0 end) +
        . . .
      ) >= 2

以上是关于在单个单元格中根据多个条件选择记录的主要内容,如果未能解决你的问题,请参考以下文章

excel如何根据条件自动变换行列颜色?

用于工作表的谷歌应用脚​​本 - 选择多个列表值并记录在同一个单元格中

如何在单个单元格中插入多个超链接?

Excel公式计算单个单元格中的多个可能组合

如何在mysql中特定列的单个单元格中插入多个整数值

如何根据多个单元格中的值自动填充