not case when m is not null then r.sal >= m -> when c > 0 then null -> else false end as c
时间: 2024-05-12 09:14:17 浏览: 16
这是一个 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 列的值将根据上述条件表达式的结果而定。
相关问题
mysql支持select sal, cast(null as integer) IN ( select case when deptno > 10 then deptno else null end from dept where deptno < 0) from emp;吗
这个语句在 MySQL 中是不支持的,因为 MySQL 不允许将 NULL 与整数进行比较。如果你想要在 MySQL 中实现类似的功能,可以使用 IFNULL 函数来处理 NULL 值。例如,你可以使用以下语句来获取 sal 列和一个表示是否满足条件的标志:
```
SELECT sal, IF(deptno > 10 OR deptno IS NULL, 1, 0) AS flag FROM emp LEFT JOIN dept ON emp.deptno = dept.deptno WHERE deptno < 0;
```
这个查询使用了左连接来将 emp 表和 dept 表连接起来,并使用 IF 函数来判断 deptno 是否大于 10 或者为 NULL。如果满足条件,则返回 1,否则返回 0。注意,这个查询中的 WHERE 子句是必需的,因为它限制了 deptno 的范围,以避免出现 NULL 值。
create or replace trigger tr_EMP_LimitSal after update on EMP () when (new.SAL < old.SAL) begin if (new.SAL < 1000) then :new.SAL := :old.SAL + 100; else raise_application_error(-20001,'工资只升不降,且至少为100元'); end if; end;
这段代码中,括号中的部分应该填写 `for each row`。完整代码如下:
```sql
create or replace trigger tr_EMP_LimitSal
after update on EMP
for each row
when (new.SAL < old.SAL)
begin
if (new.SAL < 1000) then
:new.SAL := :old.SAL + 100;
else
raise_application_error(-20001,'工资只升不降,且至少为100元');
end if;
end;
```
这个触发器的作用是:当对 EMP 表进行更新操作时,如果新工资值小于旧工资值,则触发器会被触发。对于每一行记录,如果新工资值小于 1000 元,则工资只能增加不能减少,并且增加值至少为 100 元。如果新工资值大于等于 1000 元,则触发器会抛出一个错误,提示工资只升不降,且至少为100元。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)