我似乎被卡住了,無法找到解決方案。SQL - 選擇連續的最大值
我有一個SQL表誰是第一行看起來是這樣的:
Name Val1 Val2 Val3
John 1000 2000 3000
我需要做的是選擇該行中最大的價值即3000
顯然,如果這些值是在一個什麼列而不是行,您可以使用SELECT MAX(column) FROM table
來獲得列中的最大值。 是否有這樣的等價物來查找連續的最大值?
我也有過一起來看看PIVOT
和UNPIVOT
的用途,但我不認爲他們是我在這裏有用..
我已經能夠做到這一點的唯一方法是創建一個臨時表並插入每個值成一列,像這樣:
CREATE TABLE #temp (colvals float)
INSERT INTO #temp (colvals)
SELECT Val1 FROM table WHERE ID=1
UNION
SELECT Val2 FROM table WHERE ID=1
UNION
SELECT Val3 FROM table WHERE ID=1
--------------------------------------------
SELECT MAX(colvals) FROM #temp
--------------------------------------------
DROP TABLE #temp
不過,我覺得這是相當緩慢尤其是我的表比我上面顯示的片段更大量的列。
任何想法?
在此先感謝。
UNION ALL可能更快,但可能不是最好的解決方案。 – jarlh
哪個數據庫? – Bohemian
如果你真的有20列,那麼你可以搜索內置函數。那失敗了,也許你可以創建一個自定義函數。 –