mysql - 如何根据条件为空或不为空选择数据mysql 5.7
问题描述
我有这样的名为 my_table 的表
+------------+-------+-------+
| product | type1 | type2 |
+------------+-------+-------+
| Banana | NULL | A1 |
| Grape | NULL | B1 |
| Watermelon | A | A1 |
| Orange | B | A1 |
+------------+-------+-------+
我想根据他的类型选择产品,如果 type1 NULL 则使用类型 2 的类型,如果不是则使用类型 1
所以预期的结果是这样的
+------------+------+
| product | type |
+------------+------+
| Banana | A1 |
| Grape | B1 |
| Watermelon | A |
| Orange | B |
+------------+------+
解决方案
使用COALESCE
:
SELECT
product,
COALESCE(type1, type2) AS type
FROM yourTable;
如果不是,该COALESCE(a, b)
函数将返回,否则将回退到返回。a
NULL
b
推荐阅读
- c++ - 如何从所有成员在 C++ 中公开的封闭类访问嵌套类成员函数?
- python - subprocess.run() 不返回任何输出
- object - Primefaces 自动完成展示选择了错误的国家对象
- react-native - 反应从 api 获取的本机下拉 pciker
- laravel - 在 Laravel 中显示存储的图像
- angular - 离子路由器创建 ionic-page-invisible 且未删除
- python - 如何使用递归列出目录和子目录中的现有文件?
- c# - 使用两个输入从 C# 中的数据库中选择数据
- nunit - 通过 nunit-console 运行时某些测试失败
- unit-testing - AutoFixture 生成一个 JsonDocument?