子查询返回多个值。 !这当子查询遵循=,=,<, <= , >,> =

问题描述:

当我运行我的SQL查询,我得到子查询的错误不允许:子查询返回多个值。 !这当子查询遵循=,=,<, <= , >,> =

SELECT 
    [FileName], [FilePath] 
FROM 
    dbo.[tb_CrawlData] cr 
WHERE 
    cr.Content LIKE '%' + (SELECT content 
          FROM [tb_CrawlData] 
          WHERE Content like '%test%') + '%' 
GROUP BY 
    cr.FileName, [FilePath] 
ORDER BY 
    cr.FileName 

下面的截图是我的数据库:

enter image description here

您可以使用exists代替:

SELECT [FileName], [FilePath] 
FROM dbo.[tb_CrawlData] cr 
WHERE EXISTS (SELECT 1 
       FROM [tb_CrawlData] cd 
       WHERE cd.Content like '%test%' AND 
        cr.Content like '%' + cd.Context + '%' 
      ) 
GROUP BY cr.FileName, [FilePath] 
ORDER BY cr.FileName ; 
+0

@Gordon ......哇!这是快速和很好的答案。 感谢您的帮助

这是您的查询:

SELECT [FileName],[FilePath] FROM dbo.[tb_CrawlData] cr 
WHERE cr.Content like '%' + (SELECT content FROM [tb_CrawlData] 
WHERE Content like '%test%') + '%' GROUP BY cr.FileName,[FilePath] 
ORDER BY cr.FileName 

这是怎么回事?

select distinct FileName, FilePath 
from tb_CrawlData 
where content like '%test%' 
order by FileName 
+0

@丹......是的输出相同。谢谢您的帮助。 如何把这个声明放到我的c#中? –