mysql select case when
时间: 2023-08-14 12:11:46 浏览: 186
你可以使用 CASE WHEN 语句来在 MySQL 中进行条件选择。这个语句通常与 SELECT 语句一起使用,可以根据不同的条件返回不同的结果。下面是一个示例:
```sql
SELECT column1, column2,
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result3
END AS result
FROM your_table;
```
在这个示例中,你需要将 `column1` 和 `column2` 替换为你想要选择的列,`your_table` 替换为你要查询的表名。 `condition1` 和 `condition2` 是你的条件,`result1`、`result2` 和 `result3` 是根据条件返回的结果。
希望这可以帮助到你!如果你有其他问题,请随时提问。
相关问题
mysql select case when用法
MySQL中的SELECT CASE WHEN语句可以根据条件返回不同的值。它的语法如下:
```
SELECT
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
FROM table_name;
```
其中,expression是要比较的表达式,value1、value2等是expression可能的取值,result1、result2等是对应的返回结果,default_result是当expression不等于任何value时的默认返回结果。
此外,根据引用所述,一旦满足了某一个WHEN,这一条数据就会退出CASE WHEN,而不再考虑其他CASE。
举个例子,假设有一个学生成绩表,我们想根据成绩返回不同的等级,可以使用以下语句:
```
SELECT
name,
score,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
WHEN score >= 60 THEN 'D'
ELSE 'F'
END AS grade
FROM student_scores;
```
以上语句会返回每个学生的姓名、成绩和对应的等级。
简化mysql select CASE WHEN #{company_type} not in ('Downstream', 'Shipment', 'Supplier') then (SELECT count(1) FROM scf_custom_company WHERE id <> #{id} AND tenant_id = #{_tenantId} AND bcm_deleted = 'N' AND company_type = #{company_type} AND company_credit_code = #{companyCreditCode} ) ELSE ( SELECT count(1) FROM scf_custom_company WHERE id <> #{id} AND tenant_id = #{_tenantId} AND bcm_deleted = 'N' AND company_type = #{company_type} AND (parent_org_code <> #{parentOrgCode} or parent_org_code is null) AND company_credit_code = #{companyCreditCode} ) end
这是一条 MySQL 查询语句,根据不同的条件选择不同的查询方式,可以简化为以下代码:
```
SELECT count(1) FROM scf_custom_company
WHERE id <> #{id} AND tenant_id = #{_tenantId} AND bcm_deleted = 'N'
AND company_type = #{company_type} AND company_credit_code = #{companyCreditCode}
AND (
(#{company_type} NOT IN ('Downstream', 'Shipment', 'Supplier') AND parent_org_code = #{parentOrgCode})
OR
(#{company_type} IN ('Downstream', 'Shipment', 'Supplier') AND (parent_org_code <> #{parentOrgCode} OR parent_org_code IS NULL))
)
```
其中,`#{}` 表示占位符,需要在实际执行查询时替换成具体的值。这条语句的作用是统计符合条件的记录数。
阅读全文