婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > mssql 數據庫表行轉列,列轉行終極方案

mssql 數據庫表行轉列,列轉行終極方案

熱門標簽:小e電話機器人 一個導航軟件能用幾個地圖標注點 百度地圖標注改顏色 臨沂智能電銷機器人加盟哪家好 貴州房產智能外呼系統供應商 鎮江網路外呼系統供應商 電銷外呼有錄音系統有哪些 申請400電話在哪辦理流程 外呼運營商線路收費
復制代碼 代碼如下:

--行轉列問題
--建立測試環境
Create Table TEST
(DATES Varchar(6),
EMPNO Varchar(5),
STYPE Varchar(1),
AMOUNT Int)
--插入數據
Insert TEST Select '200605', '02436', 'A', 5
Union All Select '200605', '02436', 'B', 3
Union All Select '200605', '02436', 'C', 3
Union All Select '200605', '02436', 'D', 2
Union All Select '200605', '02436', 'E', 9
Union All Select '200605', '02436', 'F', 7
Union All Select '200605', '02436', 'G', 6
Union All Select '200605', '02438', 'A', 7
Union All Select '200605', '02438', 'B', 8
Union All Select '200605', '02438', 'C', 0
Union All Select '200605', '02438', 'D', 3
Union All Select '200605', '02438', 'E', 4
Union All Select '200605', '02438', 'F', 5
Union All Select '200605', '02438', 'G', 1
GO
--測試
--如果STYPE固定,可以這麼寫
Select
DATES,
EMPNO,
SUM(Case STYPE When 'A' Then AMOUNT Else 0 End) As A,
SUM(Case STYPE When 'B' Then AMOUNT Else 0 End) As B,
SUM(Case STYPE When 'C' Then AMOUNT Else 0 End) As C,
SUM(Case STYPE When 'D' Then AMOUNT Else 0 End) As D,
SUM(Case STYPE When 'E' Then AMOUNT Else 0 End) As E,
SUM(Case STYPE When 'F' Then AMOUNT Else 0 End) As F,
SUM(Case STYPE When 'G' Then AMOUNT Else 0 End) As G
From TEST
Group By DATES,EMPNO
Order By DATES,EMPNO

--如果STYPE不固定,用動態語句
Declare @S Varchar(1000)
Set @S=''
Select @S=@S+',SUM(Case STYPE When '''+STYPE+''' Then AMOUNT Else 0 End) As '+STYPE From (Select Distinct STYPE From TEST) A Order By STYPE
Set @S='Select DATES,EMPNO'+@S+' From TEST Group By DATES,EMPNO Order By DATES,EMPNO'
EXEC(@S)
GO
--如果被轉置的是數字類型的話,應用下列語句
DECLARE @S VARCHAR(1000)
SET @S='SELECT DATES,EMPNO '
SELECT @S=@S+',['+STYPE+']=SUM(CASE WHEN STYPE='''+STYPE+''' THEN AMOUNT ELSE 0 END)'
FROM (Select Distinct STYPE From TEST) A Order By STYPE
SET @S=@S+' FROM TEST GROUP BY DATES,EMPNO'
EXEC(@S)

如果是列轉行的話直接Union All就可以了

例如 :

city style color 46 48 50 52
長沙 S6MF01002 152 1 2 2 1
長沙 S6MF01002 201 1 2 2 1
上面到下面的樣子
city style color size qty
長沙 S6MF01002 152 46 1
長沙 S6MF01002 152 48 2
長沙 S6MF01002 152 50 2
長沙 S6MF01002 152 52 1
長沙 S6MF01002 201 46 1
長沙 S6MF01002 201 48 2
長沙 S6MF01002 201 50 2
長沙 S6MF01002 201 52 1

Select City,Style,Color,[46] From Test
Union all
Select City,Style,Color,[48] From Test
Union all
Select City,Style,Color,[50] From Test
Union all
Select City,Style,Color,[52] From Test

就可以了
您可能感興趣的文章:
  • mysql 行轉列和列轉行實例詳解
  • sql語句實現行轉列的3種方法實例
  • SQLServer行轉列實現思路記錄
  • MySQL存儲過程中使用動態行轉列
  • Sql Server 2000 行轉列的實現(橫排)
  • SQL查詢語句行轉列橫向顯示實例解析
  • sql動態行轉列的兩種方法
  • table 行轉列的sql詳解
  • SQL行轉列和列轉行代碼詳解
  • SQL基礎教程之行轉列Pivot函數

標簽:澳門 晉城 延邊 日照 合肥 保定 嘉興 三明

巨人網絡通訊聲明:本文標題《mssql 數據庫表行轉列,列轉行終極方案》,本文關鍵詞  mssql,數據庫,表行轉,列,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mssql 數據庫表行轉列,列轉行終極方案》相關的同類信息!
  • 本頁收集關于mssql 數據庫表行轉列,列轉行終極方案的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 长春市| 工布江达县| 阜新| 莲花县| 洛阳市| 贵阳市| 南汇区| 垦利县| 延长县| 张家口市| 鄂州市| 通海县| 泰顺县| 湄潭县| 嘉峪关市| 龙川县| 南康市| 长白| 和顺县| 海盐县| 长海县| 高雄县| 莎车县| 石首市| 酉阳| 开远市| 南阳市| 宾阳县| 都江堰市| 临清市| 连江县| 恭城| 葵青区| 千阳县| 滦平县| 望奎县| 淮安市| 合江县| 澄城县| 上栗县| 大化|