我有一个表,当选择distinct时,它看起来与下面的示例类似。格式为MainFolder-SubFolder1-SubFolder2
Folder |
---|
a - b |
a - b - c |
c |
B-D-E |
我不确定我完全理解你的问题,但你能不能不只是创建数据集的参数值看起来像这样…
SELECT DISTINCT LEFT(Folder, 1) AS MainFolder FROM myTable
那么你的主数据集查询将是这样的…
SELECT * FROM myTable WHERE Left(Folder,1) = @pMainFolder
…其中pMainFolder
是参数
的名称或者如果pMainFolder是多值的你可以使用
SELECT * FROM myTable WHERE Left(Folder,1) IN(@pMainFolder)
**UPDATE ** after OP additional info.
假设所有文件夹都有某种形式的分隔符(在您的示例中是-
),您可以替换这个
Left(Folder,1)
LEFT(Folder, CHARINDEX('-', Folder)-1)
CharIndex给出了Folder
列中第一个-
的位置。所以在admin -south中;这将是位置6,然后我们减去1得到5然后在LEFT
函数中使用它所以我们只得到最左边的前5个字符,在这个例子中"Admin">