1. 程式人生 > >oracle行變列(多行變成一行/多行合併成一行/多行合併成多列/合併行)

oracle行變列(多行變成一行/多行合併成一行/多行合併成多列/合併行)

和mysql對比著看:http://blog.csdn.net/rainyspring4540/article/details/50231435

這裡是oracle10g的環境

資料庫結構如下:


如果我想將相同名字的成績顯示在同一行,有2中基本展示:

第一種展示(顯示在同一行的不同列上)

其sql如下:

select name ,
max(decode(type,'math',score,0)) as 數學,
max(decode(type,'english',score,0)) as 英語,
max(decode(type,'chinese',score,0)) as 語文
from stu2
group by name
由於這裡一個人只對應一科目的成績,所有你用max和sum是一樣的,如果一個人一個科目有多個成績,這時sum就是求和的意思了,而max就是取最大值,我就不在寫案例了,自己注意下就ok

第二中展示(顯示在同一行的同一列上)

sql如下:

select name ,
max(decode(type,'math',score,0)) ||';'||
max(decode(type,'english',score,0)) ||';'||
max(decode(type,'chinese',score,0)) as allScore
from stu2
group by name
如果你熟悉字串拼接||的用法就能做出更多樣式:

樣式1:


相關推薦

代碼把女朋友照片變成了素描圖片!人生苦短,愛python一些

python -o 取圖 tco 兩層 學習教程 以及 == 很多 我們知道圖片除了最普通的彩×××,還有很多類型,比如素描,卡通,黑白等等,今天就介紹如何使用python和opencv來實現圖片變素描圖。 首先將彩×××轉換成灰度圖; 對灰度圖進行求其反色的操作; 對第2

Oracle獲取日期大全當月的第一天/後一天/上一天/最後一天/上個月這一天

由於經常會再oracle中獲取當月的第一天/後一天/上一天/最後一天/上個月這一天,所以整理出下面的oracle獲取日期大全出來,有什麼更好的建議可以留言補充一下。 日期說明 oracle語句(假設現在是2018-11-28 11:11:11)

oracle變成一行/合併一行/合併/合併

和mysql對比著看:http://blog.csdn.net/rainyspring4540/article/details/50231435 這裡是oracle10g的環境 資料庫結構如下: 如果我想將相同名字的成績顯示在同一行,有2中基本展示: 第一種展示(顯示在同

mysql衍生形式

我的這篇文章整理了mysql多行變多列的2種常見形式:http://blog.csdn.net/rainyspring4540/article/details/50231435 這裡就不贅述了,下面說下它更復雜的衍生形式: 表結構: create table studen

除錯經驗——使用自定義函式在Oracle中實現類似LISTAGG函式的字串連線功能

問題描述: LISTAGG函式是一個很實用的函式,但僅在Oracle 11.2以後的版本中才有。 生產環境中有個資料庫是Oracle 11.1,需要行轉列,但並不能使用LISTAGG函式。 解決方法: 參考以下文章: https://oracle-base.com/artic

MySQL 行列轉換變化各種方法實現總結報表統計 資料記錄統計等

                前言:mysql行列變化,最難的就是將多個列變成多行,使用的比較多的是統計學中行變列,列變行,沒有找到現成的函式或者語句,所以自己寫了儲存過程,使用動態sql來實現,應用業務場景,使用者每個月都有使用記錄數錄入一張表,一個月一個欄位,所以表的欄位是動態增長的,現在需要實時統計當

[MySQL] 行列轉換變化各種方法實現總結報表統計、資料記錄統計等

前言:mysql行列變化,最難的就是將多個列變成多行,使用的比較多的是統計學中行變列,列變行,沒有找到現成的函式或者語句,所以自己寫了儲存過程,使用動態sql來實現,應用業務場景,使用者每個月都有使用記錄數錄入一張表,一個月一個欄位,所以表的欄位是動態增長的,現在需要實時統計

[MySQL] 行列轉換變化各種方法實現總結報表統計、資料記錄統計等

前言: mysql行列變化,最難的就是將多個列變成多行,使用的比較多的是統計學中行變列,列變行,沒有找到現成的函式或者語句,所以自己寫了儲存過程,使用動態sql來實現,應用業務場景,使用者每個月都有使用記錄數錄入一張表,一個月一個欄位,所以表的欄位是動態增長的,

GreenPlum之數組合並取交集及函數

blog ner fun cnblogs $1 $$ ble lec temp --1.利用INTERSECT關鍵字數組之間交集函數 CREATE OR REPLACE FUNCTION array_intersect(anyarray, anyarray) RETU

Oracle 連接一行 convert multiple rows to one row

acl art rom 用法 port trac 我的電腦 現在 row animal id name 1 dog 1 cat 2 lion 怎麽得到相同id的name list呢?也就是想得到id 為1的list為dog, cat格式。 1. 首先Or

Linux提取不匹配字符串的awk函數

div ont 字符串 pre IT int nan span http 如下圖所示,想把含有‘-nan’字符串的行提取出來 則用到awk函數,命令行如下: awk ‘{if($3!="-nan"){print $3}}‘ CHB_vs_

[Oracle維護工程師手記系列]一次升級後運慢的分析

設置 增加 整體 dex classes 並不是 select 統計 系列 客戶報告,當他從 Oracle 11.1.0.7 ,遷移到雲環境,並且升級到12.1.0.2。運行客戶的應用程序測試,發現比以前更慢了。從AWR report 的"Top 10 Foreground

makefile之命令包&

expand close 部分 code gin like clas pro 簡單使用 define&endef 1. 命令包(canned recipes)&多行變量(muti-line variables) The define directive i

oracle 聚合函數 LISTAGG ,將結果合並一行

亂碼 進行 to_char acl oracle bsp 結果 查詢 聚合函數 LISTAGG( to_char(Item_Category_Name), ‘,‘) WITHIN GROUP(ORDER BY Item_Category_Name) -- 將 Item

sqlserver

微軟 技術 all drop 記錄 記錄拆分 div student 數學 1、行轉列 微軟官方的圖: 方法二 -- 行轉列 DROP TABLE studentB; CREATE TABLE studentB (姓名 varchar(10),語文

C 按讀取檔案但是最後一行會輸出一行

#include <stdio.h>   int main()  {      char filename[] = "E:\\data_test\\commands.txt"; //檔名   &nb

微信小程式中換,空格個空格寫法

在小程式中HTML的網頁實體無法正常使用,小程式中的寫法為:  一、空格,換行 <text>你好!\t七月流火啊!\n我在下一行</text> ---------------------------------------------------------

關於SQL Server將一內容拼接一行的問題討論

示例 昨天遇到一個SQL Server的問題:需要寫一個儲存過程來處理幾個表中的資料,最後問題出在我想將一個表的一個列的多行內容拼接成一行,比如表中有兩列資料 : 類別 名稱 AAA 企業1

QT QTableView QTableWidget 複雜表頭(表頭) 、凍結、固定特定的

對於所有前端開發人員會留意到,我們在開發過程中對於表格使用頻率還是挺高的,使用QT框架開發時候我們使用QTableView或者QTableWidget建立表格。 其中表格分為 表格頭與表格體: 對於簡單地表格,我們可以設定表頭來滿足我們的要求(當然也可以隱藏表頭),不

pivot

with temp as(select '四川省' nation ,'成都市' city,'第一' ranking from dual union allselect '四川省' nation ,'綿陽市' city,'第二' ranking from dual union allselect '四川省' n