15 lines
705 B
Go
15 lines
705 B
Go
SELECT
|
||
player_id,
|
||
-- 使用 CASE WHEN 实现条件判断:超过 1000 万重置为 200 万,否则保留原数值
|
||
CASE
|
||
WHEN (data->>'exp_pool')::bigint > 10000000 -- 判断是否超过 1000 万
|
||
THEN 2000000::bigint -- 超过则重置为 200 万,统一为 bigint 类型避免类型不一致
|
||
ELSE (data->>'exp_pool')::bigint -- 未超过则保留原 bigint 数值
|
||
END AS online_time
|
||
FROM "player_info"
|
||
-- 保留 jsonb_exists 函数判断字段存在,避免占位符冲突
|
||
WHERE
|
||
jsonb_exists(data, 'exp_pool')
|
||
AND (data->>'exp_pool')::bigint > 0 -- 此处仍保留原判断,过滤大于 0 的数据
|
||
-- 按修正后的 online_time 降序排序
|
||
ORDER BY online_time DESC; |