sql case when else 显示原值
时间: 2023-09-03 12:06:58 浏览: 265
使用SQL的CASE WHEN语句可以根据条件来显示不同的值。当使用CASE WHEN语句时,可以使用ELSE关键字来指定在没有符合条件的情况下显示的默认值,这个默认值就是原始的值。
例如,如果我们有一个名为userInfo的表,其中包含UserID、Name和age列,我们可以使用以下SQL语句来查询小明的性别并显示原始的age值:
```
SELECT UserID, Name, CASE WHEN age=0 THEN '女' ELSE '男' END AS gender, age
FROM userInfo
WHERE Name = '小明'
```
这个查询将返回小明的UserID、Name、性别和age值。如果age为0,则性别显示为"女",否则显示为"男",并且age列会保持原始的值。
此外,在不同的数据库中,对于不同的数据类型的处理方式也可能不同。例如,在MySQL中,int类型的值会自动转换为varchar类型,而在PostgreSQL中,会报类型错误,需要手动将int类型转换为varchar类型。可以使用CAST函数来进行转换,例如:CAST(age AS varchar)。
另外一个例子是,如果我们有一个名为user的表,其中包含user_name、birthday、age和password列,我们可以使用以下SQL语句来判断字段是否为null,并显示原值:
```
SELECT user_name, birthday, age,
CASE WHEN password IS NULL THEN '无密码' ELSE password END AS pwd
FROM user
```
这个查询将返回user_name、birthday、age和pwd列。如果password字段为空(null),则pwd列显示为"无密码",否则显示password字段的原始值。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [sql语句CASE when用法,查询数据时判断数据是否符合条件,并返回指定值](https://blog.csdn.net/cplvfx/article/details/119407392)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [sql case when使用记录](https://blog.csdn.net/leiming01/article/details/84134659)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文