oracle縱表查詢

2021-05-27 10:40:16 字數 1028 閱讀 9643

前一段時間了解到的,今天有空寫下,備忘~

先來說說橫表和縱坐表的概念,先來看看以下兩圖:

第一張圖就是橫表,一行表示了乙個實體記錄,這就是我們傳統的設計表的形式

第二張圖就是縱表,他的一行記錄,是用於表示某個學生的屬性名和屬性值對應關係,像這邊有兩個屬性(名字和性別),在縱表中就要用兩條記錄來表示乙個學生。

從上面可以觀察出,橫表的好處是清晰可見,一目了然,但是有乙個弊端,如果現在要把這個表加乙個字段,那麼就必須重建表結構。對於這種情況,在縱表中只需要新增一條記錄,就可以新增乙個字段,所消耗的代價遠比橫錶小,但是縱表的對於資料描述不是很清晰,而且會造成資料庫數量很多,兩者利弊在於此。所以,應該把不容易改動表結構的設計成橫表,把容易經常改動不確定的表結構設計成縱表。

在實際開發中,經常需要互相轉換橫表和縱表的形式,這裡貼個從縱表資料轉成橫表顯示的形式。?

縱表轉橫表

1

2

3

4

selectstudent_no,

max(decode(field_name,'student_name',field_value))asstudent_name,

max(decode(field_name,'student_***',field_value ))asstudent_***

fromcuc_student_ygroupbystudent_no;

Oracle橫表轉縱表

現有 scott 使用者下的 emp和 dept表 empempno number 4 ename varchar2 10 jobvarchar2 9 mgrnumber 4 hiredate date salnumber 7,2 comm number 7,2 deptno number 2 de...

Oracle 橫表和縱表

前一段時間了解到的,今天有空寫下,備忘 先來說說橫表和縱坐表的概念,先來看看以下兩圖 第一張圖就是橫表,一行表示了乙個實體記錄,這就是我們傳統的設計表的形式 第二張圖就是縱表,他的一行記錄,是用於表示某個學生的屬性名和屬性值對應關係,像這邊有兩個屬性 名字和性別 在縱表中就要用兩條記錄來表示乙個學生...

Oracle橫表 縱表一點記錄

橫表就是普通的建表方式,如乙個表結構為 主鍵 欄位1 欄位2 欄位3。如果變成縱表後,則表結構為 主鍵 字段 字段值。而字段 則為字段1 欄位2 欄位3。縱表對從 資料庫到記憶體的對映效率是有影響的,但細一點說也要一分為二 縱表的初始對映要慢一些 縱表的變更的對映可能要快一些,如果只是改變了單個欄位...