首页 > 解决方案 > 从多个列中删除零

问题描述

我有一个带有ID,NumeratorDenominator列的表。

当分子和分母出现在同一行时,我将如何删除零?

我想我可以做一个 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.

标签: sqlsql-servertsql

解决方案


您将使用两个 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;

推荐阅读