簡體   English   中英

根據列值動態獲取列名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM