【问题标题】:How to create an Oracle SQL statement in the following case?以下情况如何创建Oracle SQL语句?
【发布时间】:2016-09-29 07:56:25
【问题描述】:

我有一个包含三个 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 语句吗?

非常感谢。

【问题讨论】:

  • 如果数据记录比较多或者需要多字段组合选择名字怎么办?
  • 如果您有不同的情况需要处理,请编辑您的问题以显示示例数据和所需结果

标签: sql oracle case decode


【解决方案1】:

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

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

【讨论】:

  • 非常感谢您的意见。看来您的解决方案可以用于多种情况。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多