2016-09-29 137 views
0

我有三个clumns和三个数据记录的Oracle表如下所示如何在以下情况下创建Oracle SQL语句?

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

我想通过一个给定的ID来选择名字。

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

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

非常感谢提前。

+0

如果什么有更多的数据记录,或者如果我需要通过多个字段的组合选择名字? – Learner

+0

如果您有不同的情况需要处理,请编辑您的问题,以显示样本数据和期望的结果 – Aleksej

回答

0

使用CASE声明:

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

注:我以为,基于输入数据,该IDVARCHAR而不是数字,因为前导零。使用

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

做外连接时,这个例子ID = 2:如果ID是数字,那么查询更改为此

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

非常感谢您的意见。看来您的解决方案可以用于各种情况。 – Learner

相关问题