Cong BJP AAP Winner Win By 25554 36985 **26929** BJP 10056 19753 **24569** 36239 AAP 11670
使用SQL Server 2008,這是表決表,我想請從聰,人民黨和AAP列投票第二最大數量與結果值的列名 回報 預期結果:如何爲那些粗體的值選擇列名稱?
Againstvote AgainstPartyName 26929 AAP 24569 BJP
Cong BJP AAP Winner Win By 25554 36985 **26929** BJP 10056 19753 **24569** 36239 AAP 11670
使用SQL Server 2008,這是表決表,我想請從聰,人民黨和AAP列投票第二最大數量與結果值的列名 回報 預期結果:如何爲那些粗體的值選擇列名稱?
Againstvote AgainstPartyName 26929 AAP 24569 BJP
select
case
when BJP between AAP and Cong then BJP
when AAP between BJP and Cong then AAP
else Cong
end as AgainstVote,
case
when BJP between AAP and Cong then 'BJP'
when AAP between BJP and Cong then 'AAP'
else 'Cong'
end as AgainstPartyName
from tab
真的幫助完全謝謝Dnoeth。 –
看起來你想要一種方法來將你的列名作爲你的數據的一部分。我會說,這說明了一個次優設計。無論如何,你的具體情況有一個UNPIVOT條款救援:
SELECT
Votes AS AgainstVotes,
PartyName AS AgainstPartyName
FROM dbo.atable AS t
UNPIVOT (
Votes FOR PartyName in (BJP, AAP)
) AS u
WHERE PartyName <> Winner
;
的UNPIVOT條款轉換數據集中到這一點:
Cong PartyName Votes Winner Win By
----- --------- ----- ------ ------
25554 BJP 36985 BJP 10056
25554 AAP 26929 BJP 10056
19753 AAP 36239 AAP 11670
19753 BJP 24569 AAP 11670
WHERE子句然後篩選出與中獎票行,保持失去的參與者。
我真的不明白你在問什麼。你能提供表格的佈局和你嘗試過的任何SQL嗎? –
分享你的電子郵件ID,我會寄給你 –
你的問題沒有任何意義。請重新說明...... –