行列轉換 兩行相加

2021-05-21 19:02:05 字數 648 閱讀 6852

學習在於積累。

第一次發文,不妥之處,請見諒!

在查詢中,往往會遇到多行相加的情況,如:

用於儲存任務單當前狀態的表a結構及資料如下:

number        state

t00002243  開發角度需求分析

t00002243  測試角度需求分析

t00002222  廠商接收

t00002221  廠商開發

想得到下面的結果:

t00002243  開發角度需求分析;測試角度需求分析

t00002222  廠商接收

t00002221  廠商開發

即,若任務單有多個狀態,則拼接起來,中間用『;』隔開.如何實現呢 ?

先根據任務單號number進行分組,分別用max()和min()函式得到這兩個狀態,然後再把它們連線起來即可。

sql示例如下:

select number,case when max(state)!=min(state) then max(state)||';'||min(state) else max(state) end state

from a

group by number;

對於多於兩行相加的情況,思索很久,未找到乙個直接用sql可實現拼接的方法,還望高手賜教,謝謝!

mysql行列轉換 mysql行列轉換

1.一維轉二維 上圖為成績表中資料,現希望將資料轉換為下圖。靜態 轉化為二維表後的列名及列數是確定不變的,本例中即course只有數學 語文 英語這三門課。select s name,max if course 數學 score,0 as 數學,max if course 語文 score,0 as...

mysql行列轉換例子 mysql行列轉換示例

現把轉換方法列舉如下 1 縱表轉橫表 縱表結構 tablea name course grade 張三語文 張三數學 張三英語 李四語文 李四數學 橫表結構 tableb name 語文數學 英語張三 李四方法一 select name,sum case course when 語文 then gr...

行列轉換 普通

行列轉換 普通 if exists select from sysobjects where id object id a and sysstat 0xf 3 drop table dbo.a create table dbo.a name1 varchar 20 not null,subject ...