[英]Get column name based on column value dynamically
我有一個表“User Name”,“Brand”和“Value”作為列。 每位經理及其員工都負責max 3品牌,這些品牌可以從經理變為經理。 現在用戶名,品牌及其價值的行格式如下。
User Name Brand Name Value
User 1 Puma 10
User 1 Adidas 20
User 1 Nike 30
User 2 Puma 40
User 2 Adidas 50
User 2 Nike 60
User 3 Puma 70
User 3 Adidas 80
User 3 Nike 90
使用“case-when”我在下面實現,但問題是,這些品牌可以根據經理進行更改。 例。 經理-1可以負責彪馬,耐克,阿迪達斯,但經理-2可以負責X,Y,Z品牌。
User Name Brand -1 Brand -2 Brand -3
User 1 10 20 30
User 2 40 50 60
User 3 70 80 90
我希望的狀態是以下面的列格式獲取品牌名稱。
經理 - 1
User Name PUMA ADIDAS NIKE
User 1 10 20 30
User 2 40 50 60
User 3 70 80 90
對於經理-2
User Name X Y Z
User 1 10 20 30
User 2 40 50 60
User 3 70 80 90
我想要實際的3個品牌名稱作為列動態而不是Brand-1,Brand-2,Brand -3。 我可以對這些品牌進行硬編碼,但正如我所說,他們可能因經理而異,但同時也是一位經理。
透視可以通過多種方式實現,
1)使用pivot函數2)使用XML函數3)動態SQL 4)使用游標
假設您正在使用Oracle SQL數據庫,以上所有內容都適用,請在上面進行更多調查。 如果上述其他幾項將適用於您的數據庫工具的其他選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.