3

我想对数据库中的指定列进行比较,比较逻辑应该比较数字而不考虑它们的符号,并将检索带有符号的原始结果。

例如,下面的代码运行良好,但从 select 块中可以看出,它返回列的绝对值。Firebird 2.1 中有什么技巧可以作弊来克服这个问题吗?

SELECT a.ELM_NUM,a.COMBO, maxvalue(abs(a.N_1),abs(a.N_2)) as maxN from ntm a order by a.ELM_NUM
4

1 回答 1

3

您可以使用一个CASE条件:

SELECT a.ELM_NUM,a.COMBO, 
    CASE WHEN abs(a.N_1) > abs(a.N_2) THEN a.N_1 ELSE a.N_2 END as maxN 
from ntm a 
order by a.ELM_NUM
于 2013-09-25T07:41:57.310 回答