具有多个结果的子查询,SQL Server

Art*_*t F 2 sql t-sql sql-server

我有一个看起来像这样的查询:

SELECT * 
FROM dbo.document_library_file_attributes 
WHERE my_file_id=
(SELECT my_file_id 
 FROM dbo.document_library_file_attributes 
 WHERE attribute_name='Directory/Key' AND attribute_value LIKE @directory+'%')
Run Code Online (Sandbox Code Playgroud)

我希望子查询能够返回多个结果,这意味着my_file_id可以等于'directoryA','directoryB',我想要所有这些结果.我该怎么办?

Ode*_*ded 6

使用IN而不是=结果集:

SELECT * 
FROM dbo.document_library_file_attributes 
WHERE my_file_id IN
(SELECT my_file_id 
 FROM dbo.document_library_file_attributes 
 WHERE attribute_name='Directory/Key' AND attribute_value LIKE @directory+'%')
Run Code Online (Sandbox Code Playgroud)

它:

确定指定的值是否与子查询或列表中的任何值匹配.