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

时间:2016-09-29 07:56:25

标签: sql oracle case decode

我有一个带有三个clumns和三个数据记录的oracle表,如下所示

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

我想按给定的ID选择第一个名字。

如果ID存在,即它是01,02和03中的值,则需要显示相应的FIRST_NAME;

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

非常感谢提前。

2 个答案:

答案 0 :(得分:2)

执行外连接,此示例使用id = 2:

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

答案 1 :(得分:0)

使用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