sql server case when then
时间: 2023-08-30 14:08:33 浏览: 108
在SQL Server中,使用CASE WHEN语句可以根据条件对数据进行逻辑判断和分组。有两种常见的用法。
第一种用法是简单的CASE函数,其格式为:
```
case 列名
when 条件值1 then 选项1
when 条件值2 then 选项2
...
else 默认值
end
```
例如,可以使用简单的CASE函数将job_level字段的值转换为相应的字符:
```
select
case job_level
when '1' then '1111'
when '2' then '1111'
when '3' then '1111'
else 'eee'
end
from dbo.employee
```
第二种用法是CASE搜索函数,其格式为:
```
case
when 列名=条件值1 then 选项1
when 列名=条件值2 then 选项2
...
else 默认值
end
```
例如,可以使用CASE搜索函数根据job_level的不同值更新e_wage字段:
```
update employee
set e_wage =
case
when job_level = '1' then e_wage*1.97
when job_level = '2' then e_wage*1.07
when job_level = '3' then e_wage*1.06
else e_wage*1.05
end
```
这两种格式都可以实现相同的功能,但简单CASE函数的写法相对简洁一些。需要注意的是,CASE函数只返回第一个符合条件的值,剩下的CASE部分将会被自动忽略。在编写CASE WHEN语句时,要记得添加end来结束语句,并注意语法的正确性。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [sql server的Case When Then关键字的使用](https://blog.csdn.net/weixin_30642561/article/details/101518501)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [SQL SERVER case when的使用方法](https://blog.csdn.net/gangli_8/article/details/131059906)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文