这是我的MSSQL查询的结果:

我想实现的下一步是:
我想只为每列选择最大数字,Kitchen, Bar, Pizzeria and Barbecue。
我知道我可以通过4个不同的问题来解决这个问题,比如:
SELECT MAX(LastOrdinalNumber), Bar
FROM tblDemoOrdinalNumbers
WHERE Bar = 1
GROUP BY Bar
SELECT MAX(LastOrdinalNumber) as [LastOrdinalNumber], Kitchen
FROM tblDemoOrdinalNumbers
WHERE Kitchen = 1
GROUP BY Kitchen
SELECT MAX(LastOrdinalNumber) as [LastOrdinalNumber], Pizzeria
FROM tblDemoOrdinalNumbers
WHERE Pizzeria = 1
GROUP BY Pizzeria
SELECT MAX(LastOrdinalNumber) as [LastOrdinalNumber], Barbecue
FROM tblDemoOrdinalNumbers
WHERE Barbecue = 1
GROUP BY Barbecue但是,有没有可能以某种方式获得一个查询结果,比如:

所以基本上,如果可能的话,我会得到4个数字,表示4列的最大值(在第10列中,3列的最大值是10,但这无关紧要,不要让它把你搞糊涂了。)
谢谢!
发布于 2019-12-08 01:18:18
您可以很容易地对每个最大值使用单独的列:
select max(case when kitchen = 1 then LastOrdinalNumber end) as kitchen,
max(case when bar = 1 then LastOrdinalNumber end) as bar,
max(case when Pizzeria = 1 then LastOrdinalNumber end) as Pizzeria,
max(case when Barbecue = 1 then LastOrdinalNumber end) as Barbecue
from tblDemoOrdinalNumbers ;如果需要行中的值,可以连接回原始表::
select don.*
from (select max(case when kitchen = 1 then LastOrdinalNumber end) as kitchen,
max(case when bar = 1 then LastOrdinalNumber end) as bar,
max(case when Pizzeria = 1 then LastOrdinalNumber end) as Pizzeria,
max(case when Barbecue = 1 then LastOrdinalNumber end) as Barbecue
from tblDemoOrdinalNumbers
) x join
tblDemoOrdinalNumbers don
on don.LastOrdinalNumber in (kitchen, bar, Pizzeria, Barbecue)https://stackoverflow.com/questions/59228425
复制相似问题