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

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

SQL Server中的動態數據透視列

SQL Server中的動態數據透視列

白衣非少年 2019-11-02 14:14:50
我在SQL Server中有一個名為Property的表,其中包含以下列:Id    Name該表中有一些屬性,其他表中的某些對象應該為其賦值。Id    Object_Id    Property_Id    Value我想制作一個如下所示的數據透視表,其中對我在第一張表中聲明的每個屬性都有一列:Object_Id    Property1    Property2    Property3    ...我想知道如何從表中動態獲取數據透視表的列。因為第一張表中的行將更改。
查看完整描述

1 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

像這樣:


DECLARE @cols AS NVARCHAR(MAX);

DECLARE @query AS NVARCHAR(MAX);


select @cols = STUFF((SELECT distinct ',' +

                        QUOTENAME(Name)

                      FROM property

                      FOR XML PATH(''), TYPE

                     ).value('.', 'NVARCHAR(MAX)') 

                        , 1, 1, '');


SELECT @query =


'SELECT *

FROM

(

  SELECT

    o.object_id,

    p.Name,

    o.value

  FROM propertyObjects AS o

  INNER JOIN property AS p ON o.Property_Id = p.Id

) AS t

PIVOT 

(

  MAX(value) 

  FOR Name IN( ' + @cols + ' )' +

' ) AS p ; ';


 execute(@query);

SQL提琴演示。

這會給你這樣的東西:


| OBJECT_ID | PROPERTY1 | PROPERTY2 | PROPERTY3 | PROPERTY4 |

-------------------------------------------------------------

|         1 |        ee |        fd |       fdf |      ewre |

|         2 |       dsd |       sss |      dfew |       dff |


查看完整回答
反對 回復 2019-11-02
  • 1 回答
  • 0 關注
  • 561 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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