亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于列名問題

關于列名問題

子衿沉夜 2019-07-01 10:09:19
關于列名問題我有張桌子StudentMarks列Name, Maths, Science, English..數據就像Name,  Maths, Science, English   Tilak, 90,    40,      60  Raj,   30,    20,      10我想把它安排如下:Name,  Subject,  Marks Tilak, Maths,    90Tilak, Science,  40Tilak, English,  60帶著不樞軸我能夠正確地獲取名稱,標記,但不能將源表中的列名獲取到Subject列在所需的結果集中。我怎樣才能做到這一點?到目前為止,我已經達到了以下查詢(獲取名稱,標記)select Name, Marks from studentmarksUnpivot(   Marks for details in (Maths, Science, English)) as UnPvt
查看完整描述

2 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

您的查詢非常接近。您應該能夠使用以下內容,其中包括subject在最后選擇列表中:

select u.name, u.subject, u.marksfrom student sunpivot(
  marks  for subject in (Maths, Science, English)) u;

看見SQLFiddle與演示


查看完整回答
反對 回復 2019-07-01
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

您還可以通過使用具有以下代碼的邏輯序列來嘗試標準的SQL不旋轉方法。以下代碼有3個步驟:

  1. 使用交叉聯接為每行創建多個副本(本例中還創建了Subject列)
  2. 創建列“標記”并使用案例表達式填寫相關值(例如:如果主題是科學,那么從科學列中選擇值)
  3. 刪除任何空組合(如果存在,如果基表中沒有空值,則可以完全避免表達式)

     select *
     from 
     (
        select name, subject,
        case subject    when 'Maths' then maths    when 'Science' then science    when 'English' then english    end as Marksfrom studentmarksCross Join (values('Maths'),('Science'),('English')) AS Subjct(Subject))as Dwhere marks is not null;


查看完整回答
反對 回復 2019-07-01
  • 2 回答
  • 0 關注
  • 613 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號