sql - 从多个列中删除零
问题描述
我有一个带有ID
,Numerator
和Denominator
列的表。
当分子和分母出现在同一行时,我将如何删除零?
我想我可以做一个 case when 语句,例如,当 Numerator = '0' 和 Denominator = '0' 然后删除的情况下,但我的语法是关闭的。
输入表示例
ID Numerator Denominator
------------------------
1 1 0
2 0 0
输出表示例:
ID Numerator Denominator
------------------------
1 1 0
2 <--- In SQL Server, it would possibly show up as NULL since it is blank data.
解决方案
您将使用两个 case 表达式:
select t.*,
(case when numerator <> 0 or denominator <> 0 then numerator end) as new_numerator,
(case when numerator <> 0 or denominator <> 0 then denominator end) as new_denominator
from t;
推荐阅读
- c# - WCF 服务未加载下拉菜单
- algorithm - 你如何完美地散列一个可能的 unicode 字符与一个 32 位整数的联合?
- asp.net - 在 AWS 中使用 Application Load Balancer (ALB) 的混合内容问题
- android-ndk - 无法将库从 Windows 交叉编译到 Android
- powershell - Powershell中找不到位置参数错误
- javascript - 如何从类别频道中删除频道(文本或语音)?
- mysql - 使用 FIND_IN_SET 和 GROUP_CONCAT 时的 MySQL 查询加入问题
- node.js - AWS SDK 和 NODE JS --> UnknownEndpoint
- javascript - 为什么 (!+[]+[]) 在 Javascript 中是 'true' 而 (false + []) 是 'false'?
- c# - C# 控制台应用 AzureAD 如何模仿 powershell 的 Get-AzureADUser