達夢資料庫行列轉換實現方法

2021-10-03 07:52:12 字數 1179 閱讀 9641

我們在做資料統計的時候,行轉列是我們有可能會遇到的乙個需求。在dm7中,我們有多種不同的方式來進行操作,本文將向大家詳細介紹。

假設現在有乙個需求,需要把原表中的課程值作為列名查出來,那麼就要用到行列轉換了。在dm7中,我們有以下兩種解決方案。

分析原表,原表中name列有兩種數值,那麼我們可以對name進行分組,根據不同的name來查詢分數。

select name from test group

by name;

接下來,我們既然用到了group by 語句,肯定要用聚合函式來求分數。同時,我們可以看到科目這一列有三種不同的科目,我們需要判斷科目來求取分數。

利用case…when的方式我們雖然可以達到目的,但是語句比較冗長。在dm7中,我們可以利用pivot子句的方式達到類似的目的。詳細的sql語句如下:

結果如下:

在圖中我們可以看到,dm7是把三個列值作為了列名輸出到了結果集中。那麼我們如何引用這三個列名呢?

假如我們直接使用select name,『chinese』,『maths』 ,『english』,則會返回如下結果集

顯然,dm7將其識別為了字串。應該怎麼做呢?我們需要使用雙引號。那麼,正確的方式應該是這樣寫:

結果如下:

這樣一來,我們就得到了我們想要的結果。

我們可以看到,這種方式跟case…when方式得到的結果集是完全一樣的。但是在寫法上,pivot語句要更為簡便易讀。

達夢資料庫和mysql索引引擎 達夢資料庫 索引

1.索引的種類和功能 聚集索引 每乙個普通表有且只有乙個聚集索引 唯一索引 索引資料根據索引鍵唯一 函式索引 包含函式 表示式的預先計算的值 位圖索引 對低基數的列建立位圖索引 位圖連線索引 針對兩個或者多個表連線的點陣圖索引,主要用於資料倉儲中 全文索引 在表的文字列上而建的索引。2.何時使用索引...

達夢資料庫操作

1.安裝 dminstall.bin i接下來是一些設定,比如 語言 key檔案的位置 時區 安裝型別 安裝目錄 略過 2.初始化 進入你剛才設定的安裝目錄的bin目錄下執行 dminit這是我自己的設定 input system dir home dmdba dmdata input db nam...

達夢資料庫使用

1 修改最大連線數 先檢視當前的最大連線數 select sf get para value 2,max sessions 修改最大連線數 alter system set max sessions 1000 spfile 重啟資料庫 su dmdba cd dmdbms dmservicedmse...