學習在於積累。
第一次發文,不妥之處,請見諒!
在查詢中,往往會遇到多行相加的情況,如:
用於儲存任務單當前狀態的表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 ...