You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询创建临时表以获取多列最大值?

解决方案

不需要使用pivot表,你的需求是从多列中提取最大值,用聚合函数或条件判断就能实现,以下是不同数据库下创建临时表的查询语句:

MySQL/PostgreSQL

CREATE TEMPORARY TABLE temp_max_jump AS
SELECT
    name,
    GREATEST(jump1, jump2, jump3) AS jump
FROM your_table_name;

这两个数据库的GREATEST函数会自动忽略null值,直接返回非空列中的最大值,完全匹配你的需求。

Oracle

CREATE GLOBAL TEMPORARY TABLE temp_max_jump ON COMMIT PRESERVE ROWS AS
SELECT
    name,
    GREATEST(jump1, NVL(jump2, jump1), NVL(jump3, jump1)) AS jump
FROM your_table_name;

Oracle的GREATEST函数遇到null会返回null,所以用NVL将空值替换为必存在的jump1(符合你给出的规则:前序列不会空),确保能正确取到最大值。

SQL Server

CREATE TABLE #temp_max_jump (
    name VARCHAR(50),
    jump INT
);

INSERT INTO #temp_max_jump
SELECT
    name,
    (SELECT MAX(jump_val) FROM (VALUES (jump1), (jump2), (jump3)) AS vals(jump_val)) AS jump
FROM your_table_name;

SQL Server无原生GREATEST函数,可通过子查询将多列转为行数据,再用MAX函数取最大值。

核心逻辑说明

利用最大值函数直接从jump1/jump2/jump3中提取最大非空值,完全适配你给出的“前序列无空值”规则,比pivot表更简洁高效。

内容的提问来源于stack exchange,提问作者Khanh Hua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 02:37:40