Oracle:尝试检索值,但是如果发生多个匹配,则返回“ multiple”

时间:2018-11-01 00:46:17

标签: sql oracle

尝试在Oracle DB中创建仅返回一个值的查询。但是,如果查询返回的行多于一行,则返回值“ multiple”。样本数据

ID   Name    Lname
1    Joe     Reed
2    John    Reed
3    Lucy    Grim

这是我正在尝试的:

select case when count(*) over() > 1 then 'multiple'
            else Name
End Name 
from name where lname = 'Reed'

现在,如果结果中有多个匹配查询,则返回2行或更多行。我想要的是,如果只有一个结果,则返回名称;如果有多个结果,则返回单词“ multiple”。

我希望结果只返回一行:

Name
Multiple

如果我搜索“严峻”

Name
Lucy

1 个答案:

答案 0 :(得分:0)

除了@oldProgrammer建议的DISTINCT外,您还可以这样做

select...
fetch first 1 row only