選擇列名我有一個查詢是這樣的:從最大查詢
;WITH t as
(
select 1 as RowNumber, 1 as ObjectID, 10 as [Col1], 20 as [Col2], 20 as [Col3], 20 as [Col4] UNION ALL
select 2 as RowNumber, 2 as ObjectID, 20 as [Col1], 30 as [Col2], 40 as [Col3], 50 as [Col4]
)
SELECT RowNumber, ObjectID,
(
SELECT MAX(Amount)
FROM (
SELECT [Col1] AS Amount
UNION ALL
SELECT [Col2]
UNION ALL
SELECT [Col3]
UNION ALL
SELECT [Col4]
) d
WHERE Amount > 0
)
FROM t
查詢工作正常,但我想知道的是馬克斯(金額)的由來。 (RowNumber,ObjectId,Amount)我想要列(Col1,Col2,Col3,Col4)的名稱作爲字符串。
有沒有辦法做到這一點?
編輯 問題來自評論:如果兩列有相同的最大值,它可能是一個?是的,它可以是任何一個。只要我知道它可能來自哪裏,任何列名都會執行。
使用SQL Server 2008
您正在使用什麼RDBMS? – 2010-10-01 20:03:33
如果Col1和Col2具有相同的MAX,該怎麼辦?它可能是一個......? – gbn 2010-10-01 20:05:40
希望你不介意我剛剛編輯你的代碼,使它成爲一個可運行的例子,因爲我從來沒有見過這種方法。隨意將它滾回去! – 2010-10-01 20:20:58