這樣嗎?
成都創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務公司,擁有項目做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元安寧做網(wǎng)站,已為上家服務,為安寧各地企業(yè)和個人服務,聯(lián)系電話:18980820575
select?t1.push_code,t.1provincepudate,p1.provincereceivername,t2.citypudate,t2.cityreceivername
from?t1,t2
where?t.push_code=?t2.push_code
如果這兩行有個共同的其他列作為分組,標志他們是同一組、比如姓名編號之類的,是可以group by后min出來的。
select 姓名,min(引流管) as 引流管,min(化療) as 化療, min(放療) as 放療
from 記錄表
group by 姓名
;
合并可以做到,不過如果不是單一的一條記錄,那不就變成笛卡爾積了?
比如有兩行不同姓名的行,再有兩行不同姓名1的行。
那么你得到的結(jié)果就是4行(也就是笛卡爾積),而且內(nèi)容全不完全都不同,這個結(jié)果應該不是你要的吧。
比如前面的兩行內(nèi)容為a a a;b b b(一個字母表示一個字段,這是兩行內(nèi)容)
后面兩行的內(nèi)容為c c c;d d d(一個字母表示一個字段,這是兩行內(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
這個四行的結(jié)果是你要的么?
我現(xiàn)在身邊沒有 數(shù)據(jù)庫環(huán)境 這個是我以前寫的SQL
你看一下,修改一下就可以了
Oracle分組查詢用逗號分隔結(jié)果SQL語句
表一:
學號 姓名
1 張三
2 李四
3 王五
。。。。
表二:
學號 選修課程
1 語文
1 數(shù)學
2 英語
2 語文
3 數(shù)學
3 英語
3 歷史
。。。。。
要求查處結(jié)果
學好 姓名 選修課程所有課程名稱以,隔開
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;