1樓:匿名使用者
你看看是不是這樣的,你資料排版太混亂了
select csrq,qyph,pczl,wm_concat(jyxmmc),wm_concat(jyz),xydj,je from 表名 group by csrq,qyph,pczl,xydj,je
----------補充-----------
oracle跟sqlserver不一樣,如果儲存過程的話只能返回類似sqlserver中print那種
這樣的話,不知道能符合你要求不
表名我起的test
create table test
(csrq varchar2(10),
qyph varchar2(20),
pczl number(10,4),
jyxmmc varchar2(10),
jyz number(10,4),
xydj number(10,4),
je number(10,4))
insert into test values ('2014-5-6','201405070026',111.2300,'矽',3.1260,1280.
0000,954050.8544);
insert into test values ('2014-5-6','201405070026',111.2300,'碳',3.4580,1280.
0000,954050.8544);
insert into test values ('2014-5-6','201405070026',111.2300,'磷',0.0770,1280.
0000,954050.8544);
insert into test values ('2014-5-6','201405070026',111.2300,'鎳',6.7010,1280.
0000,954050.8544);
insert into test values ('2014-5-6','201405070026',111.2300,'鉻',2.5940,1280.
0000,954050.8544);
insert into test values ('2014-5-6','201405070026',111.2300,'硫',0.2020,1280.
0000,954050.8544);
執行select 'csrq','qyph','pczl',replace(wm_concat(jyxmmc),',',' '),'xydj','je' from test
union all
select to_char(csrq),to_char(qyph),to_char(pczl),replace(to_char(wm_concat(jyz)),',',' '),to_char(xydj),to_char(je) from test
group by to_char(csrq),to_char(qyph),to_char(pczl),to_char(xydj),to_char(je)結果
2樓:
select csrq,qyph,pczl,sum(case when jyxmmc='矽' then jyz else 0) as 矽,
sum(case when jyxmmc='碳' then jyz else 0) as 碳
......
from table_name
group by csrq,qyph,pczl;行轉列就是這樣,列舉值有多少寫多少
3樓:
用group by 分組吧
求助,oracle多行資料合併成一行
4樓:匿名使用者
select (wm_concat(t.name)) as allname from test t
注意資料庫的限制長度
5樓:匿名使用者
我現在身邊沒有 資料庫環境 這個是我以前寫的sql
你看一下,修改一下就可以了
oracle分組查詢用逗號分隔結果sql語句
表一:學號 姓名
1 張三
2 李四
3 王五
。。。。
表二:學號 選修課程
1 語文
1 數學
2 英語
2 語文
3 數學
3 英語
3 歷史
。。。。。
要求查處結果
學好 姓名 選修課程所有課程名稱以,隔開
1 張三 語文,數學
2 李四 英語,語文
3 王五 數學,英語,歷史
;create table a_lyh_test
asselect 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
asselect 1 as "學號" , '語文' as "選修課程" from dual
union all
select 1 as "學號" , '數學' as "選修課程" from dual
union all
select 2 as "學號" , '英語' as "選修課程" from dual
union all
select 2 as "學號" , '語文' as "選修課程" from dual
union all
select 3 as "學號" , '數學' 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;
6樓:匿名使用者
select id ,listagg( name, ',' ) within group ( order by id ) as name
from table_name
group by id;
7樓:匿名使用者
select wm_concat(name) from test
8樓:匿名使用者
你這就是行轉列,行數太多不建議這樣做,有很多方法,典型的有decode,多寫幾個decode。
oracle資料庫中有多行相同資料,只留一行怎麼實現?
9樓:匿名使用者
delete from emp e where e.rowid > (select min(x.rowid)
from emp x where x.emp_no = e.emp_no);
10樓:匿名使用者
distinct 函式查詢出來 插入另一張表 最簡單了
11樓:
select distinct col1,col2,col3 from table
12樓:匿名使用者
distinct 關鍵字幫你解決這個問題。
求助,oracle多行資料合併成一行
select wm concat t.name as allname from test t 注意資料庫的限制長度 我現在身邊沒有 資料庫環境 這個是我以前寫的sql 你看一下,修改一下就可以了 oracle分組查詢用逗號分隔結果sql語句 表一 學號 姓名 1 張三 2 李四 3 王五 表二 學號...
求助,oracle多行資料合併成一行
select wm concat t.name as allname from test t 注意資料庫的限制長度 我現在身邊沒有 資料庫環境 這個是我以前寫的sql 你看一下,修改一下就可以了 oracle分組查詢用逗號分隔結果sql語句 表一 學號 姓名 1 張三 2 李四 3 王五 表二 學號...
sql資料庫和oracle資料庫哪個好
兄弟,聽我的。肯定學習oracle。原因 1 oracle是商用的最廣泛的關係型資料庫管理系統,廣泛應用於銀行 電信 電力 社保等各個領域。特別是對於unix和linux平臺,sqlserver怎麼用啊?我想你學習,肯定為了將來應用,或者工作,你的簡歷裡面寫oracle和sqlserver完全是不一...