有没有办法为CASE子句中已经存在的计算(计算字段)设置上限?我在计算百分比,显然,我不希望最高值超过"100"。
如果它还没有出现在CASE子句中,我会创建类似于"当计算>100.0时为CASE,然后100其他计算根据需要结束百分比"的内容,但我现在不能这样做。。
谢谢你的建议。
我认为使用最小函数将是最好的选择。
select least((case when ...), 100) from ...
有一种方法可以通过创建外部查询来设置计算字段的上限。看看下面的例子。内部查询将是您当前拥有的查询。然后只需在其上创建一个外部查询,并使用WHERE子句将其限制为<=1.
SELECT
z.id,
z.name,
z.percent
FROM(
SELECT
id,
name,
CASE WHEN id = 2 THEN sales/SUM(sales) ELSE NULL END AS percent
FROM
users_table
) AS z
WHERE z.percent <= 1