欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

oracle如何合并行,oracle 合并行

求助,oracle多行數(shù)據(jù)合并成一行

我現(xiàn)在身邊沒有 數(shù)據(jù)庫環(huán)境 這個是我以前寫的SQL

成都創(chuàng)新互聯(lián)公司專注于灤南企業(yè)網(wǎng)站建設,響應式網(wǎng)站開發(fā),商城網(wǎng)站建設。灤南網(wǎng)站建設公司,為灤南等地區(qū)提供建站服務。全流程按需定制網(wǎng)站,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務

你看一下,修改一下就可以了

Oracle分組查詢用逗號分隔結果SQL語句

表一:

學號 姓名

1 張三

2 李四

3 王五

。。。。

表二:

學號 選修課程

1 語文

1 數(shù)學

2 英語

2 語文

3 數(shù)學

3 英語

3 歷史

。。。。。

要求查處結果

學好 姓名 選修課程所有課程名稱以,隔開

1 張三 語文,數(shù)學

2 李四 英語,語文

3 王五 數(shù)學,英語,歷史

;

create table a_lyh_test

as

select 1 as "學號" , '張三' as "姓名" from dual

union all

select 2 as "學號" , '李四' as "姓名" from dual

union all

select 3 as "學號" , '王五' as "姓名" from dual

;

create table b_lyh_test

as

select 1 as "學號" , '語文' as "選修課程" from dual

union all

select 1 as "學號" , '數(shù)學' as "選修課程" from dual

union all

select 2 as "學號" , '英語' as "選修課程" from dual

union all

select 2 as "學號" , '語文' as "選修課程" from dual

union all

select 3 as "學號" , '數(shù)學' as "選修課程" from dual

union all

select 3 as "學號" , '英語' as "選修課程" from dual

union all

select 3 as "學號" , '歷史' as "選修課程" from dual

;

select f."學號"

,f."姓名"

,ltrim(max(sys_connect_by_path(f."選修課程",','))

keep (dense_rank last order by f.pnum),',') as "選修課程"

from

(

select t."學號"

,t."姓名"

,t."選修課程"

,row_number() over(partition by t."學號" order by t."姓名") as pnum

,row_number() over(partition by t."學號" order by t."姓名")-1 as lnum

from

(

select a."學號",a."姓名",b."選修課程"

from a_lyh_test a

,b_lyh_test b

where a."學號" = b."學號"

) t

) f

group by f."學號",f."姓名"

connect by f.lnum = prior f.pnum and f."學號" = prior f."學號"

start with f.pnum = 1;

在Oracle中,如何將多行數(shù)據(jù)合并成一行數(shù)據(jù),如下:

如果這兩行有個共同的其他列作為分組,標志他們是同一組、比如姓名編號之類的,是可以group by后min出來的。

select 姓名,min(引流管) as 引流管,min(化療) as 化療, min(放療) as 放療

from 記錄表

group by 姓名

;

oracle 兩行數(shù)據(jù)合并為一行數(shù)據(jù)

合并可以做到,不過如果不是單一的一條記錄,那不就變成笛卡爾積了?

比如有兩行不同姓名的行,再有兩行不同姓名1的行。

那么你得到的結果就是4行(也就是笛卡爾積),而且內容全不完全都不同,這個結果應該不是你要的吧。

比如前面的兩行內容為a a a;b b b(一個字母表示一個字段,這是兩行內容)

后面兩行的內容為c c c;d d d(一個字母表示一個字段,這是兩行內容)

那么你得到的結果就是 a a a c c c;a a a d d d;b b b c c c;b b b d d d

這個四行的結果是你要的么?

新聞名稱:oracle如何合并行,oracle 合并行
標題路徑:http://chinadenli.net/article38/dsiddsp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化商城網(wǎng)站面包屑導航全網(wǎng)營銷推廣用戶體驗微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司