SQL代碼 列轉行 或者 SQL代碼 行轉列 ...
前言: 由於很多業務表因為歷史原因或者性能原因,都使用了違反第一范式的設計模式。即同一個列中存儲了多個屬性值 具體結構見下表 。 這種模式下,應用常常需要將這個列依據分隔符進行分割,並得到列轉行的結果。 表數據: ID Value tiny,small,big small,medium tiny,big 期望得到結果: ID Value tiny small big small medium ti ...
2017-04-28 15:02 0 9486 推薦指數:
SQL代碼 列轉行 或者 SQL代碼 行轉列 ...
數據表: 列轉行:利用max(case when then) max ---聚合函數 取最大值 ( case course when '語文' then score else ...
數據表: 列轉行:利用max(case when then) max ---聚合函數 取最大值 ( case course when '語文' then score else ...
數據表: 列轉行:利用max(case when then) max ---聚合函數 取最大值 ( case course when '語文' then score else ...
--分組加排序,數據量大時結果會比較慢 SELECT listagg(t.ename,',') WITHIN GROUP(ORDER BY t.sal) FROM scott.emp t;SELECT ...
由於很多業務表因為歷史原因或者性能原因,都使用了違反第一范式的設計模式,即同一個列中存儲了多個屬性值。這種模式下,應用常常需要將這個列依據分隔符進行分割,並得到列轉行的結果:這里使用substring_index函數進行處理 建表語句: 如下圖: sql語句 ...