sql - 如果多列为真则返回 1,如果只有一列为真则返回 0
问题描述
我有一个如下所示的表:
ID | 桶_1 | 桶_2 | 桶_3 | 桶_4 |
---|---|---|---|---|
7689 | 1 | 1 | 0 | 1 |
3456 | 1 | 0 | 1 | 1 |
4567 | 0 | 0 | 1 | 1 |
5677 | 1 | 0 | 0 | 0 |
4567 | 1 | 0 | 0 | 0 |
我需要做的是编写查看存储桶 1 到 4 的 SQK 代码,如果这些列中的多个列的值为 1,则将其标记为 1 或 true,否则将其标记为 0 或 false。这是我正在尝试制作的表格:
ID | 桶_1 | 桶_2 | 桶_3 | 桶_4 | 结果 |
---|---|---|---|---|---|
7689 | 1 | 1 | 0 | 1 | 1 |
3456 | 1 | 0 | 1 | 1 | 1 |
4567 | 0 | 0 | 1 | 1 | 1 |
5677 | 1 | 0 | 0 | 0 | 0 |
4567 | 1 | 0 | 0 | 0 | 0 |
你能帮助如何实现这一目标吗?我不确定如何使用 case 子句来完成。
解决方案
您可以使用case
表达式:
select t.*,
(case when bucket_1 + bucket_2 + bucket_3 + bucket_4 > 1
then 1 else 0
end) as result
from t;
推荐阅读
- discord.js - 删除和添加角色静音命令
- oracle - 如何在oracle sql developer中选择存储过程输出参数作为表
- c# - DropDownList 总是删除第一个值?
- makefile - 如何在 makefile 中使用 g++ 编译位于不同目录中的源文件和头文件?
- visual-studio - 如何使代码抑制消息始终以英文显示?
- mathematical-optimization - N个产品与M个特征的最优组合
- angular - 为什么我在使用 Microsoft Graph REST API 使用 Angular 调用此端点时会收到 403 禁止响应?
- r - R,data.table - 为多个表创建新列
- mpesa - Safaricom 仪表板未显示所有测试凭据
- java - 执行 SonarScanner.MSBuild.exe end 命令后执行 SonarScanner 期间出错