合并可以做到,不過(guò)如果不是單一的一條記錄,那不就變成笛卡爾積了?
成都創(chuàng)新互聯(lián)成立于2013年,我們提供高端網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、全網(wǎng)營(yíng)銷推廣、成都小程序開發(fā)、微信公眾號(hào)開發(fā)、營(yíng)銷推廣服務(wù),提供專業(yè)營(yíng)銷思路、內(nèi)容策劃、視覺設(shè)計(jì)、程序開發(fā)來(lái)完成項(xiàng)目落地,為成都陽(yáng)臺(tái)護(hù)欄企業(yè)提供源源不斷的流量和訂單咨詢。
比如有兩行不同姓名的行,再有兩行不同姓名1的行。
那么你得到的結(jié)果就是4行(也就是笛卡爾積),而且內(nèi)容全不完全都不同,這個(gè)結(jié)果應(yīng)該不是你要的吧。
比如前面的兩行內(nèi)容為a a a;b b b(一個(gè)字母表示一個(gè)字段,這是兩行內(nèi)容)
后面兩行的內(nèi)容為c c c;d d d(一個(gè)字母表示一個(gè)字段,這是兩行內(nèi)容)
那么你得到的結(jié)果就是 a a a c c c;a a a d d d;b b b c c c;b b b d d d
這個(gè)四行的結(jié)果是你要的么?
這樣嗎?
select?t1.push_code,t.1provincepudate,p1.provincereceivername,t2.citypudate,t2.cityreceivername
from?t1,t2
where?t.push_code=?t2.push_code
如果這兩行有個(gè)共同的其他列作為分組,標(biāo)志他們是同一組、比如姓名編號(hào)之類的,是可以group by后min出來(lái)的。
select 姓名,min(引流管) as 引流管,min(化療) as 化療, min(放療) as 放療
from 記錄表
group by 姓名
;
SQL select * from vb;
ID NM1 NM2
---------- ------------------------------ ------------------------------
1 a ccb
1 df dgdf
1 ewr saldfj
SQL select id,replace(name,',',' ') name from (select id,wm_concat(name) name from (select id,nm1||' '||nm2 name from vb) group by id);
ID NAME
---------- ------------------------------
1 a ccb ewr saldfj df dgdf
我現(xiàn)在身邊沒(méi)有 數(shù)據(jù)庫(kù)環(huán)境 這個(gè)是我以前寫的SQL
你看一下,修改一下就可以了
Oracle分組查詢用逗號(hào)分隔結(jié)果SQL語(yǔ)句
表一:
學(xué)號(hào) 姓名
1 張三
2 李四
3 王五
。。。。
表二:
學(xué)號(hào) 選修課程
1 語(yǔ)文
1 數(shù)學(xué)
2 英語(yǔ)
2 語(yǔ)文
3 數(shù)學(xué)
3 英語(yǔ)
3 歷史
。。。。。
要求查處結(jié)果
學(xué)好 姓名 選修課程所有課程名稱以,隔開
1 張三 語(yǔ)文,數(shù)學(xué)
2 李四 英語(yǔ),語(yǔ)文
3 王五 數(shù)學(xué),英語(yǔ),歷史
;
create table a_lyh_test
as
select 1 as "學(xué)號(hào)" , '張三' as "姓名" from dual
union all
select 2 as "學(xué)號(hào)" , '李四' as "姓名" from dual
union all
select 3 as "學(xué)號(hào)" , '王五' as "姓名" from dual
;
create table b_lyh_test
as
select 1 as "學(xué)號(hào)" , '語(yǔ)文' as "選修課程" from dual
union all
select 1 as "學(xué)號(hào)" , '數(shù)學(xué)' as "選修課程" from dual
union all
select 2 as "學(xué)號(hào)" , '英語(yǔ)' as "選修課程" from dual
union all
select 2 as "學(xué)號(hào)" , '語(yǔ)文' as "選修課程" from dual
union all
select 3 as "學(xué)號(hào)" , '數(shù)學(xué)' as "選修課程" from dual
union all
select 3 as "學(xué)號(hào)" , '英語(yǔ)' as "選修課程" from dual
union all
select 3 as "學(xué)號(hào)" , '歷史' as "選修課程" from dual
;
select f."學(xué)號(hào)"
,f."姓名"
,ltrim(max(sys_connect_by_path(f."選修課程",','))
keep (dense_rank last order by f.pnum),',') as "選修課程"
from
(
select t."學(xué)號(hào)"
,t."姓名"
,t."選修課程"
,row_number() over(partition by t."學(xué)號(hào)" order by t."姓名") as pnum
,row_number() over(partition by t."學(xué)號(hào)" order by t."姓名")-1 as lnum
from
(
select a."學(xué)號(hào)",a."姓名",b."選修課程"
from a_lyh_test a
,b_lyh_test b
where a."學(xué)號(hào)" = b."學(xué)號(hào)"
) t
) f
group by f."學(xué)號(hào)",f."姓名"
connect by f.lnum = prior f.pnum and f."學(xué)號(hào)" = prior f."學(xué)號(hào)"
start with f.pnum = 1;
文章標(biāo)題:oracle怎么合并行,oracle 合并行
文章來(lái)源:http://sd-ha.com/article12/dsspjdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、企業(yè)建站、網(wǎng)站改版、網(wǎng)站維護(hù)、小程序開發(fā)、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)