如何在case when中取反
时间: 2023-08-20 17:09:18 浏览: 141
在 HiveSQL 的 `CASE WHEN` 表达式中,可以使用逻辑运算符 `NOT` 对布尔条件进行取反操作。
下面是一个示例,演示如何在 `CASE WHEN` 中取反布尔条件:
```sql
SELECT
CASE WHEN condition_column = TRUE THEN FALSE
WHEN condition_column = FALSE THEN TRUE
ELSE NULL
END AS negated_condition
FROM your_table;
```
在上面的示例中,`condition_column` 是一个布尔类型的字段,`your_table` 是包含该字段的表名。`CASE WHEN` 表达式根据布尔条件的值进行判断,如果条件为 `TRUE`,则返回 `FALSE`;如果条件为 `FALSE`,则返回 `TRUE`;否则返回 `NULL`。查询结果将返回取反后的布尔值。
相关问题
select case when not(1)
SELECT CASE WHEN NOT(1) 是一种 SQL 语句中的条件表达式,用于判断某个条件是否成立并返回相应的结果。在这个表达式中,NOT(1) 表示对 1 取反,即返回逻辑值 False。因此,整个表达式的结果是 False,SELECT CASE WHEN NOT(1) 将会返回一个默认的结果。
如果您需要更具体的解释,请告诉我您想要查询的具体内容,我会尽力回答。同时,根据您的提问,以下是三个相关问题:
not case when m is not null then r.sal >= m -> when c > 0 then null -> else false end as c
这是一个 SQL 查询中的 CASE 表达式,它的语法结构如下:
```
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
```
在这个查询中,CASE 表达式被用来生成一个名为 c 的列。该列的值根据条件表达式的结果而定。
具体来说,该条件表达式包括三个部分,分别为:
1. `not case when m is not null then r.sal >= m`:如果 m 不为 NULL,则将 r.sal 是否大于或等于 m 的结果取反。
2. `when c > 0 then null`:如果 c 大于 0,则将 c 的值设为 NULL。
3. `else false`:否则将 c 的值设为 FALSE。
最终生成的 c 列的值将根据上述条件表达式的结果而定。
阅读全文