我想在我的一个查询中插入一个条件,但真的不知道该怎么做。基本上,我按它们的文件夹_id 对一堆文件进行排序,即它们所属的文件夹(使用按folder_id 排序)。对于这些文件组中的每一个,我现在想要的是选择满足特定条件的第一个文件的查询。如果文件夹中的任何文件都不满足该条件,则查询应选择文件夹中可用的第一个文档。
这是我的查询(简化):
select folder_id,
file_id,
first_name
from f_file
where first_name = 'John'
order by folder_id
所以,如果我现在的结果是:
FOLDER ID FILE ID AUTHOR
A 32 John
A 41 John
A 56 Thomas
A 78 Peter
B 02 Peter
B 03 Peter
B 45 Peter
C 34 John
C 56 Thomas
C 77 Peter
C 86 John
D 12 Peter
D 34 Thomas
D 89 Thomas
对于每个文件夹,我希望查询仅显示 John 创建的第一个文档(最低 file_id)。如果该文件夹中根本没有 John 创建的文档,那么任何其他作者的第一个文档都会这样做。
FOLDER ID FILE ID AUTHOR
A 32 John
B 02 Peter
C 34 John
D 12 Peter
因此,ID 必须是最低的,但作者必须是 John 或其他人。我的想法是在IF EXISTS
子句中插入一个子句WHERE
,但是怎么做呢?
感谢您的回复。瓦尔