在SQL查询中使用fn_分割

在SQL查询中使用fn_分割,sql,Sql,我一直在努力让fn\u Split在我的查询中正常工作。我到处寻找,在这里找到的答案似乎接近我所需要的,但我仍然无法让它发挥作用 基本上,我试图返回与数组中的条目匹配的记录。我已经有一个表值函数与我的数据库一起工作,如下所示: Select * From dbo.fn_Split('county1, county2',',') 我的问题是让它在我的应用程序中工作,我希望它返回的记录要么是选择了完全相同的县,要么是将选择的县作为更大的县集的一部分(比如说所有县)。县以以下格式存储在名为Count

我一直在努力让
fn\u Split
在我的查询中正常工作。我到处寻找,在这里找到的答案似乎接近我所需要的,但我仍然无法让它发挥作用

基本上,我试图返回与数组中的条目匹配的记录。我已经有一个表值函数与我的数据库一起工作,如下所示:

Select * From dbo.fn_Split('county1, county2',',')
我的问题是让它在我的应用程序中工作,我希望它返回的记录要么是选择了完全相同的县,要么是将选择的县作为更大的县集的一部分(比如说所有县)。县以以下格式存储在名为County的列中:county1、county2、county3等等。我现在意识到这是问题的一部分,在一列中有多个值是不好的形式,但不幸的是,我现在对此无能为力

到目前为止,我得到的是:

SELECT * FROM MyTable WHERE County IN (SELECT County From dbo.fn_Split(@counties, ','))
出于某种原因,这将返回所有记录<代码>@countries的格式如下:

county1、county2

任何帮助都将不胜感激。我对编写SQL还不熟悉,所以请原谅我没有解释清楚。谢谢

使用

SELECT *
FROM   MyTable
WHERE  County IN (SELECT value /*<-- Guessed column name*/
                  FROM   dbo.fn_Split(@counties, ',')) 

SELECT *
FROM   MyTable
WHERE  County = County 

只要split函数返回至少一行,就会始终返回外部查询中所有非
NULL
值的
County

BTW如果您使用的是SQL Server 2008或更高版本,您可以查看表值参数,而不是将CSV拆分为表格形式。我将其更改为SELECT value,现在是返回与各个县匹配的记录。进步!现在,我需要能够返回个人比赛,以及如果记录有一个更大的县作为一组县的一部分,像所有45个县。例如,person选择county3,county14,它将返回包含这些县的记录以及包含所有县的任何记录(county1,county2,county3…county45)。非常感谢您的帮助@user3738691使用示例数据提出一个新问题,因为我不清楚您的表模式是什么或您的意思。好的,我在这里创建了一个新问题:我会将您的答案标记为选中,因为它肯定有帮助,并且考虑到我的措辞可能是最好的答案。谢谢
SELECT *
FROM   MyTable
WHERE  County = County