oracle怎么实现if else的条件判断?

img

img

如上图所示,应该怎么写if else的逻辑,实现整表数据的判断?如果a列有数据,取a,否则取 b列数据,再者取c列数据?

一定要用if else嘛 ,使用case when then end 更加简单方便

1、使用case when代替if...else。
2、在存储过程里面使用if...else。
3、使用decode函数。

直接用CASE WHEN判断就行,如果 A 列不为空,选择 A 列;否则,如果 A 列为空且 B 列不为空,则选择 B 列;最后,如果 A 和 B 列都为空,就选择 C 列


SELECT 
    CASE 
        WHEN A IS NOT NULL THEN A 
        WHEN A IS NULL AND B IS NOT NULL THEN B 
        ELSE C 
    END AS Result
FROM TT;

引用chatGPT作答,在 Oracle SQL 中,可以使用 CASE 表达式来实现 if else 的逻辑判断。对于整表数据的判断,可以使用 SELECT 语句来查询表中的所有数据,并在 SELECT 子句中使用 CASE 表达式来根据条件选择不同的列。

下面是一个示例查询语句,其中假设表名为 mytable,包含三列 a、b、c:

SELECT 
    CASE
        WHEN a IS NOT NULL THEN a
        WHEN b IS NOT NULL THEN b
        ELSE c
    END AS result
FROM mytable;

这个查询语句中,我们使用了 CASE 表达式来判断每行数据中的 a、b、c 列是否有值,如果 a 列有值,就取 a 列的值,如果 a 列没有值但是 b 列有值,就取 b 列的值,否则就取 c 列的值。最后,我们将结果列命名为 result。

请注意,这个查询语句仅仅是一个示例,实际情况下您需要根据表结构和数据情况来调整查询语句。同时,如果您需要对查询结果进行排序、过滤等操作,需要在查询语句中添加相应的 ORDER BY、WHERE 等子句。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
在Oracle中,可以使用CASE语句来实现类似if else的条件判断。语法如下:

CASE WHEN condition1 THEN result1
     WHEN condition2 THEN result2
     ...
     ELSE default_result
END

其中,condition1、condition2等表示条件表达式,result1、result2等表示满足上述条件时的返回结果,default_result表示如果所有条件都不满足的默认返回结果。

针对本题的具体实现,可以使用以下SQL语句:

SELECT 
    CASE 
        WHEN a IS NOT NULL THEN a
        WHEN b IS NOT NULL THEN b
        ELSE c
    END AS result
FROM 
    your_table

其中,your_table表示要进行条件判断的表,a、b、c分别表示表中的对应列,result表示根据条件判断后返回的结果列名。

以上SQL语句的逻辑为:先判断a列是否有数据,如果有则返回a列数据,否则判断b列是否有数据,如果有则返回b列数据,如果都为空则返回c列数据,最终结果将在result列中输出。

希望能对您有所帮助!
如果我的回答解决了您的问题,请采纳!

SELECT 
 CASE 
  WHEN 条件1 THEN 条件1的結果
  WHEN 条件2 THEN 条件2的結果
  ELSE 条件1,2以外的结果
 END 
FROM table1;

样例

SELECT
CASE WHEN AGE=18 THEN '年龄18'
WHEN AGE=19 THEN '年龄19'
END AGE,
COUNT(*)

FROM
"PeopleInfo"


SELECT 
    CASE
        WHEN a IS NOT NULL THEN a
        WHEN b IS NOT NULL THEN b
        ELSE c
    END AS result
FROM 
    table_name;
  1. SELECT COALESCE(a,b.c) FROM TT;
  2. SELECT NVL2(a,b,c) FROM TT;
  3. case when
  4. decode

如果要在SQL语句中实现条件判断,可以使用CASE语句。例如,以下示例在表中选择a列或b列,如果a列为空,则选择b列:


SELECT
  CASE WHEN a IS NOT NULL THEN a ELSE b END AS column_name
FROM
  your_table
如果需要选择c列,可以再次使用CASE语句嵌套:
```sql


SELECT
  CASE WHEN a IS NOT NULL THEN a ELSE
    CASE WHEN b IS NOT NULL THEN b ELSE c END
  END AS column_name
FROM
  your_table

```

这将首先检查a列是否为空,如果不为空,则选择a列的值。否则,将检查b列是否为空,如果不为空,则选择b列的值。如果b列也为空,则选择c列的值。

如果要实现整个表的逻辑,可以使用以上示例的代码,并将“your_table”替换为表的名称。