導航:首頁 > 編程大全 > sql資料庫行轉列

sql資料庫行轉列

發布時間:2022-11-05 11:27:41

① sql動態行轉列

可以使用動態行列轉換,先拼出相關的sql語句的字元串,再用exec 來執行。

② SQL行轉列,列轉行

行列轉換在做報表分析時還是經常會遇到的,今天就說一下如何實現行列轉換吧。

行列轉換就是如下圖所示兩種展示形式的互相轉換

假如我們有下表:

通過上面 SQL 語句即可得到下面的結果

PIVOT 後跟一個聚合函數來拿到結果,FOR 後面跟的科目是我們要轉換的列,這樣的話科目中的語文、數學、英語就就被轉換為列。IN 後面跟的就是具體的科目值。

當然我們也可以用 CASE WHEN 得到同樣的結果,就是寫起來麻煩一點。

使用 CASE WHEN 可以得到和 PIVOT 同樣的結果,沒有 PIVOT 簡單直觀。

假設我們有下表 student1

通過 UNPIVOT 即可得到如下結果:

我們也可以使用下面方法得到同樣結果

③ sql 行轉列

SELECT
*
FROM ( 你的SQL 放在這裡面
) bb PIVOT( MAX(timePoint) FOR PName( [pm2.5], [nox], [.....] ) ) AS pvt

[pm2.5],這種你有一個要列一個。

④ 怎樣實現sql行轉列

--試一試。。。

createtable#test
(
姓名nvarchar(10),
學號nvarchar(10),
題號nvarchar(10),
答案nvarchar(10)
)
go
insertinto#test
select'張三','001','1','A'unionall
select'張三','001','2','C'unionall
select'李四','002','1','B'unionall
select'李四','002','2','D'

select*from#test

dECLARE@sqlVARCHAR(max)
SET@sql=''
SELECT@sql=@sql+',['+題號+']'FROM#testGROUPBY題號
SET@sql=STUFF(@sql,1,1,'')
SET@sql='select*from#testpivot(max(答案)for題號in('+@sql+'))a'
PRINT@sql
exec(@sql)

⑤ sql 行變成列

declare@snvarchar(4000)
select@s=isnull(@s+',','')+quotename(Name)
fromsyscolumnswhereID=object_id('aa')
orderbyColid
exec('selectid,namefromaaunpivot(nameforidin('+@s+'))b')

如圖:

⑥ sql怎樣將行的值變為列,,,,

方法/步驟

⑦ SQL 行轉列

我這里兩種都給你介紹,行轉列和列轉行:

列轉行——

錄入經營范圍時候會遇到列傳行的問題解決方案如下:

在temp1 表有一下欄位內容:

⑧ sql 行轉列

SELECT DISTINCT
(SELECT a FROM tab WHERE b = '未知'),
(SELECT a FROM tab WHERE b = '輸入為空'),
(SELECT a FROM tab WHERE b = 'cc')
FROM tab
UNION ALL
SELECT
cast((SELECT a FROM tab WHERE b = '未知') / t.sumA AS DECIMAL(3, 1)),
(SELECT a FROM tab WHERE b = '輸入為空') / t.sumA,
(SELECT a FROM tab WHERE b = 'cc') / t.sumA
FROM (SELECT SUM(a) AS sumA FROM tab) t

這里cast((SELECT a FROM tab WHERE b = '未知') / t.sumA AS DECIMAL(3, 1)), 不同SQL方言轉化方式不一樣,目的是為了轉換成小數

⑨ SqlServer資料庫怎麼實現行轉列的sql語句

PIVOT 用於將列值旋轉為列名(即行轉列),在 SQL Server 2000可以用聚合函數配合CASE語句實現
PIVOT 的一般語法是:PIVOT(聚合函數(列) FOR 列 in (…) )AS P
注意:PIVOT、UNPIVOT是SQL Server 2005 的語法,使用需修改資料庫兼容級別(在資料庫屬性->選項->兼容級別改為 90 )
SQL2008 中可以直接使用
完整語法:

table_source

PIVOT(

聚合函數(value_column)

FOR pivot_column

IN(<column_list>)

)

View Code
UNPIVOT 用於將列明轉為列值(即列轉行),在SQL Server 2000可以用UNION來實現

完整語法:

table_source

UNPIVOT(

value_column

FOR pivot_column

IN(<column_list>)

)

⑩ SQL語句行轉列

根據樓主的描述,特為樓主總結如下,在SqlServer裡面行列轉換的語法一般是: select 欄位, sum(case when 要轉換的行單元格的欄位名='行欄位內容' then 聚合的欄位名 end ) as 自定義的列標題1 from 表的名字 group by 欄位(注意,分組聚合就是根據這個欄位來的,具體到樓主的問題,這里的欄位就應該是org_id) 如果有多個列,之間用逗號隔開就可以了,最後一個參數和from之間不要用逗號。 具體到樓主的顯示效果就可以這樣寫了。代碼參考如下: Select org_id , sum(case when channel ='團險' then PREM end) As '團險保費' , sum(case when channel ='個險' then PREM end) As '個險保費 From 你的表名 Group By org_id

閱讀全文

與sql資料庫行轉列相關的資料

熱點內容
c盤哪些文件是能刪的 瀏覽:925
華為榮耀6怎麼建文件夾 瀏覽:750
硬碟里excel文件找不到了 瀏覽:707
80年代台灣電影免費看 瀏覽:87
有個電影女主角叫愛愛男的叫 瀏覽:90
外國電視劇一般發布在什麼網站上 瀏覽:538
成龍邵氏電影全集 瀏覽:558
日本電影資源網站 瀏覽:718
ug編程如何設置圖片形式 瀏覽:726
re瀏覽器查看wifi密碼 瀏覽:640
韓國電影鋼琴之戀 瀏覽:323
吃奶片段的電影 瀏覽:591
台灣電影2女的 瀏覽:511
低頻電磁模擬app哪個好 瀏覽:25
在收集數據時如何處理錯誤數據 瀏覽:662
有哪些網購app可以分期 瀏覽:794
課中壞事裡面的黃頭發女演員是誰 瀏覽:312
台灣電影懷電影 瀏覽:275
怎麼辦理微信pos機 瀏覽:893
男男國外大尺度電影 瀏覽:197

友情鏈接