select case 语法

sql 代码
 
  1. select case   
  2.   
  3. when  doc_code  like '111100000002'  
  4.     then  
  5.         '1'   
  6.     else  
  7.         '3'   
  8. end  
  9. from tablename  
### CASE 语法的使用方法(编程或数据库) CASE 语法是一种用于实现条件逻辑的结构化控制语句,广泛应用于数据库查询(如 SQL、PL/SQL)和现代编程语言(如 Python)中。它允许根据不同的条件执行不同的操作,从而提高代码的可读性和逻辑清晰度。 #### 数据库中的 CASE 语法SQL 和 PL/SQL 中,CASE 语法通常用于查询语句中,实现基于条件的列值选择或在存储过程中处理多分支逻辑。 ##### 简单 CASE 表达式 简单 CASE 表达式用于将一个表达式与多个可能的值进行比较: ```sql CASE expression WHEN value1 THEN result1 WHEN value2 THEN result2 ... ELSE default_result END ``` 示例:根据员工的部门编号返回部门名称 ```sql SELECT employee_id, CASE department_id WHEN 10 THEN '人力资源部' WHEN 20 THEN '财务部' WHEN 30 THEN '技术部' ELSE '未知部门' END AS department_name FROM employees; ``` ##### 搜索 CASE 表达式 搜索 CASE 表达式用于评估多个布尔条件,并返回第一个为真的条件对应的结果: ```sql CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END ``` 示例:根据员工薪资判断薪资等级 ```sql SELECT employee_id, salary, CASE WHEN salary < 3000 THEN '低' WHEN salary BETWEEN 3000 AND 7000 THEN '中' ELSE '高' END AS salary_level FROM employees; ``` ##### PL/SQL 中的 CASE 语句 在 PL/SQL 的存储过程中,CASE 语句用于执行不同的操作: ```plsql CASE variable WHEN value1 THEN -- 执行语句序列1 WHEN value2 THEN -- 执行语句序列2 ... ELSE -- 默认执行语句 END CASE; ``` 示例:根据输入的部门编号输出部门名称 ```plsql DECLARE dept_id NUMBER := 20; BEGIN CASE dept_id WHEN 10 THEN DBMS_OUTPUT.PUT_LINE('人力资源部'); WHEN 20 THEN DBMS_OUTPUT.PUT_LINE('财务部'); WHEN 30 THEN DBMS_OUTPUT.PUT_LINE('技术部'); ELSE DBMS_OUTPUT.PUT_LINE('未知部门'); END CASE; END; ``` #### 编程语言中的 CASE 语法 ##### Python 中的 match-case(模式匹配) Python 3.10 引入了 `match-case` 语法,类似于其他语言中的 switch-case,但功能更强大,支持模式匹配。 ```python def handle_command(command): match command: case 'start': print("启动服务") case 'stop': print("停止服务") case 'restart': print("重启服务") case _: print("未知命令") handle_command('restart') # 输出:重启服务 ``` 支持更复杂的模式匹配,例如解构元组、列表或对象: ```python point = (1, 2) match point: case (0, 0): print("原点") case (x, 0): print(f"在X轴上: x={x}") case (0, y): print(f"在Y轴上: y={y}") case (x, y): print(f"在点 (x={x}, y={y})") case _: print("无效的点") ``` #### 使用注意事项 - 在 SQL 中,CASE 表达式必须以 `END` 结束,别名可选。 - 在 PL/SQL 中,CASE 语句必须以 `END CASE` 结束。 - 在 Python 中,`match-case` 支持更复杂的模式匹配,而不仅仅是简单的值比较。 - CASE 语句与 IF-ELSE 语句相比,更适合处理多个离散值的情况,代码更简洁清晰。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值