在以下情况下如何创建 Oracle SQL 语句?

How to create an Oracle SQL statement in the following case?

我有一个 oracle table 具有三个列和三个数据记录,如下所示

ID   FIRST_NAME LAST_NAME       
01     Jason      Martin     
02     Alison     Mathews    
03     Robert     Black      

我想select给定 ID 的名字。

如果ID存在,即01、02、03之间的值,需要显示对应的FIRST_NAME;

如果ID不存在,需要显示*号。 你能帮我创建这样一个 oracle SQL 语句吗?

非常感谢。

使用 CASE 语句:

SELECT ID,
       CASE WHEN ID IN ('01', '02', '03') THEN FIRST_NAME ELSE '*' END
FROM yourTable

注意:根据您的输入数据,我假设 ID 列是 VARCHAR 而不是数字,因为前导零。如果 ID 是数字,则将查询更改为:

SELECT ID,
       CASE WHEN ID IN (1, 2, 3) THEN FIRST_NAME ELSE '*' END
FROM yourTable

做一个外部连接,这个例子使用 id = 2:

select coalesce(FIRST_NAME, '*')
from dual
left join tablename on id = 2