gpt4 book ai didi

sql - 最多几列

转载 作者:行者123 更新时间:2023-12-02 05:01:55 25 4
gpt4 key购买 nike

我有一个类似于以下的场景,我想做的就是找到三列中的最大值 - 这似乎是一个非常冗长的方法,我正在使用它来查找列 mx

什么是更短更优雅的解决方案?

CREATE TABLE #Pig
(
PigName CHAR(1),
PigEarlyAge INT,
PigMiddleAge INT,
PigOldAge INT
)

INSERT INTO #Pig VALUES
('x',5,2,3),
('y',2,9,5),
('z',1,1,8);

WITH Mx_cte
AS
(
SELECT PigName,
Age = PigEarlyAge
FROM #Pig
UNION
SELECT PigName,
Age = PigMiddleAge
FROM #Pig
UNION
SELECT PigName,
Age = PigOldAge
FROM #Pig
)
SELECT x.PigName,
x.PigEarlyAge,
x.PigMiddleAge,
x.PigOldAge,
y.mx
FROM #Pig x
INNER JOIN
(
SELECT PigName,
mx = Max(Age)
FROM Mx_cte
GROUP BY PigName
) y
ON
x.PigName = y.PigName

最佳答案

SQL Server 在接受值列表并返回最大值的其他 RDBMS 中没有等效于 GREATEST 的函数。

但是您可以使用 table valued constructor 模拟类似的东西由所需的列组成,然后对其应用 MAX

SELECT *,
(SELECT MAX(Age)
FROM (VALUES(PigEarlyAge),
(PigMiddleAge),
(PigOldAge)) V(Age)) AS mx
FROM #Pig

关于sql - 最多几列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16928029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com