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

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

SQLServer:旋轉字符串數據的示例

SQLServer:旋轉字符串數據的示例

Smart貓小萌 2019-06-05 12:41:43
SQLServer:旋轉字符串數據的示例試圖找到一些簡單的SQLServer樞軸示例。我發現的大多數例子都涉及計數或匯總數字。我只想轉軸一些字符串數據。例如,我有一個返回以下內容的查詢。Action1 VIEW  Action1 EDIT   Action2 VIEW  Action3 VIEW  Action3 EDIT我想使用樞軸(如果可能的話)來得出這樣的結果:Action1 VIEW EDIT   Action2 VIEW NULL  Action3 VIEW EDIT這與樞軸功能是可能的嗎?
查看完整描述

3 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

請記住,MAX聚合函數將處理文本和數字。此查詢只需要掃描一次表。

SELECT Action,
       MAX( CASE data WHEN 'View' THEN data ELSE '' END ) ViewCol, 
       MAX( CASE data WHEN 'Edit' THEN data ELSE '' END ) EditCol FROM t GROUP BY Action


查看完整回答
反對 回復 2019-06-05
?
12345678_0001

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

如果您特別希望使用SQLServer樞軸函數,那么假設您的兩個原始列稱為act和cmd,這應該可以工作。(不過,看上去沒那么漂亮。)

SELECT act AS 'Action', [View] as 'View', [Edit] as 'Edit'FROM (
    SELECT act, cmd FROM data) AS srcPIVOT (
    MAX(cmd) FOR cmd IN ([View], [Edit])) AS pvt


查看完整回答
反對 回復 2019-06-05
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

表設置:

CREATE TABLE dbo.tbl (
    action VARCHAR(20) NOT NULL,
    view_edit VARCHAR(20) NOT NULL);INSERT INTO dbo.tbl (action, view_edit)VALUES ('Action1', 'VIEW'),
       ('Action1', 'EDIT'),
       ('Action2', 'VIEW'),
       ('Action3', 'VIEW'),
       ('Action3', 'EDIT');

您的桌子:SELECT action, view_edit FROM dbo.tbl

https://img1.sycdn.imooc.com//5cf748420001b5bd01750077.jpg

查詢時不使用樞軸: 

SELECT Action, [View] = (Select view_edit FROM tbl WHERE t.action = action and view_edit = 'VIEW'),[Edit] = (Select view_edit FROM tbl 
WHERE t.action = action and view_edit = 'EDIT')FROM tbl tGROUP BY Action

使用樞軸查詢: 

SELECT [Action], [View], [Edit] FROM(SELECT [Action], view_edit FROM tbl) AS t1 
PIVOT (MAX(view_edit) FOR view_edit IN ([View], [Edit]) ) AS t2

這兩個查詢結果都是: 

https://img1.sycdn.imooc.com//5cf748450001a83e01470117.jpg

查看完整回答
反對 回復 2019-06-05
  • 3 回答
  • 0 關注
  • 629 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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