資料庫行轉列在現實需求中的用法

2022-03-17 07:28:03 字數 664 閱讀 2134

select t.客戶姓名,sum(case

when t.收款型別='首款

'then t.金額 else

0endas'

首款'),sum(case

when t.收款型別='尾款

'then t.金額 else

0endas'

尾款') from

table

tgroup

by t.客戶姓名

這段sql的意思 是 查詢出所有客戶收款資訊 然後按客戶分組    分組後  然後將這個客戶的所有首款的金額放在一組 然後聚合 組成首款字段   所有尾款金額 放在一組 然後sum 聚合 組成尾款字段

最終查出 

統計的時候 或者 做運算的時候非常有用

如果需要列轉行 可以使用union方式 比如我們上面這個表

select t.客戶姓名,t.首款 from

table

t where type='首款'

union

select t.客戶姓名,t.尾款 from

table t where type='尾款'

資料庫簡單的行轉列合併

這裡說明一點 此處沒有使用oracle11g的行列互轉,關於oracle11的行列互換 pivot 和 unpivot 說明這一片文章有相關介紹。簡單的行轉列資料 第一 oracle 參建關於oracle中的wmsys.wm concat中的使用問題 對於這片文章大家可以詳細研究一下。第二 sql ...

資料庫行轉列的sql語句 zt

問題描述 假設有張學生成績表 cj 如下 name subject result 張三 語文 80 張三 數學 90 張三 物理 85 李四 語文 85 李四 數學 92 李四 物理 82 現在 想寫 sql 語句 查詢後結果 為 姓名 語文 數學 物理 張三 80 90 85 李四 85 92 8...

遇到乙個需求,需要將資料庫的字段,行轉列

1.本來查詢出來,是六行資料,現在要把六行資料,加在一行的,六列裡面。這裡需要用到行轉列 第一步 將查詢出來的六行資料,做乙個表,然後進行關聯,在把每乙個值取出來,放進新的列裡面。union all union all union all union all union all union all ...