如上图所示,应该怎么写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;
如果要在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”替换为表的名称。