請教 oracle 多欄位(多列)轉一列

2025-03-10 23:35:16 字數 3592 閱讀 1954

oralce怎麼將一列欄位拆分成多列欄位

1樓:網友

這相當於是實現c#中的split方法去拆分擷取字串,而且是先分號split再冒號split,這個一句話肯定是寫不出來的,而且全顯示成列,比較奇葩,就更不好寫了,要是行的話還好,網上例子很多。

你需要寫乙個儲存過程,在儲存過程裡用遊標對test表欄位t每條需要分割的記錄做操作,結果insert到一張新表裡,執行儲存過程,然後直接查詢新表。

就說這麼個思路吧,很久不用oracle了。

excel中怎麼把多列變成一列

2樓:月亮灣教育培訓中心

excel中把一列變成多列,可以選中幾列,點合併,然後下面可以直接用單元格右下角的填充柄向下拖動。注意:如果你要合併的幾列,每列都有資料或文字,合併只會保留左上角的資料或文字,其它資料或文字就會沒有 。

3樓:網友

是合併這幾列的文字,還是要合併資料?

4樓:excel與財務

**中有多列資料,我們希望合併到一列中,一般採用複製一列貼上,再複製再貼上,如果資料比較多這種方法還是比較費時的 我們可以先開啟剪貼簿,然後把每一列都複製一遍,再點選剪貼簿中的【全部貼上】完成多列變一列。

excel中如何把一列資料變為多列?

5樓:田憐

先點選選中a列。

然後點選選單上的『工具』,在下拉選單裡,點選『分列』選項。

在這個嚮導視窗上,點選選中『分隔符號』的選框,然後點選『下一步』

在嚮導第二步裡,雖然有『逗號』可選擇作為分隔符號,但這個逗號是英文逗號,我們資料列裡的逗號是中文字元的逗號,所以我們要在其他裡輸入中文逗號作為分隔符。再次點選『下一步』按鈕。

在嚮導的第三步,用預設的設定就行了,可以看下預覽的效果,然後點選『完成』按鈕。

6樓:翟惠吳丹亦

假設資料在a列,在b1輸入。

offset($a$1,column(a1)*+row(a1)-1,0)

粗體10表示每列10個資料,如果你希望每列7個資料就改為7。

然後公式向下複製10(7)行,向右複製。

7樓:平陽虎

如果多行不超過26列的資料從a1單元格起,可用以下公式試試:

indirect(char(64+roundup(row(1:1)/counta(a:a),)if(mod(row(1:

1),counta(a:a))=0,counta(a:a),mod(row(1:

1),counta(a:a)))

下拉填充。

8樓:帳號已登出

假設資料在a1:xx3

則公式。=offset($a$1,mod(row(a3),3),int(row(a3)/3)-1)下拉。

oracle多行轉多列

9樓:網友

你這個應該是一張通用的表吧,就是說下面還有可能出現,諸如id=10002或者10003等。

如果這樣的話,就用row_number()over(partition by id),進行排序,然後把排序後的再進行轉換。

比如上面這個就是。

select row_number()over(partition by id) id_id,id,countnum from table

這樣會出來結果,如下。

id_id id countnum

上面的結果沒有排序,也可以按照countnum進行排序,就是在partition by id的後面加乙個orderby,看你用不用了。

然後再對這個結果進行行列轉換,用case when就行,我假設上張表取別名為a

那麼select id,(case when id_id=1 then countnum end) column1,,(case when id_id=2 then countnum end) column2,(case when id_id=3 then countnum end) column3,(case when id_id=4 then countnum end) column3,..from a

不過這種寫法有乙個問題,就是必須寫乙個最長的,不然你就有資料不能顯示出來。

如果只有乙個10001,那麼可以利用rownum直接編組。

oracle資料庫中如何將一列的內容轉換成多行

10樓:網友

需要用wm_concat函式。

如test表中有如下資料:

現在要name列的內容都顯示到同一行,可用如下語句:

select wm_concat(name) from test;

查詢結果:

11樓:

select max(case when 檢查費用 = 護理費 then 檢查費用 else null end)

max(case when 檢查費用 = 護理費 then 檢查費用else null end)

max(case when 檢查費用 = 護理費 then 檢查費用 else null end)

sum(max(case when 檢查費用 = 護理費 then 檢查費用 else null end) +max(case when 檢查費用 = 護理費 then 檢查費用else null end)

max(case when 檢查費用 = 護理費 then 檢查費用 else null end))

from table

12樓:網友

select 病人,sum(decode(檢查費用,'護理費', 護理金額,0) as 護理費 ,sum(decode(檢查費用,'診斷費', 診斷費金額,0) as 診斷費 ,.

from biao group by 病人。

13樓:網友

總得有個條件判斷是什麼費用才行哦。。你是從**判斷出事護理費,診斷費的。。。補充問題說清楚,要不神仙也幫不了你啊。。我關注著。。

比如從別的列進行判斷 是哪個部門 出示的檢查費用。。

或者 檢查費用 這個列 是varchat2型的,"護理費用)"。。

14樓:網友

1、需要確保各種費用之間是有分隔符的,比如逗號2、因為要做求和,因此需要確保費用值是數值型別的3、每行資料的費用種類的數量是否一致?

在確認了上面的問題後,可以編寫乙個自定義函式來實現。

oracle怎麼把乙個欄位根據不同的條件拆分成多列展現

15樓:網友

想到了行轉列pivot函式。但是你這個需求,我做不出來。

16樓:空空城舊念

你直接加 where 條件不就可以啦 :form 表a where type ="a"

oracle 如何實現一行多列轉換成一列多行

17樓:別啊我還要睡

使用union合併查詢結果,前提是他們是類似的資料型別。

詳細語法參考。

oracle裡接在欄位後面是什麼意思

這個是用在sql語句條件裡面的,在左邊,就是左關聯,在右邊就是右關聯 左邊就是左聯,右邊就是右聯 這個還是挺形象的,加號在哪邊那邊資料就多 說反了,在左邊是右關聯,在右邊是左關聯,記憶的方法就是以哪個表為主表,就把 加在對方欄位的後面 醫學上是用 或 號來表示陽性和陰性的,這是代表陽性。sql查詢語...

oracle中查詢某欄位不為空的sql語句怎麼寫

sql中判斷非空不能用等號,因為null在sql中被看作特殊符號,必須使用關鍵字 is和not select from a where info is not null select id,info from 表名 where info is not null select from a where...

oracle怎麼更新表中的某欄位的值

通過update語句將a表的來某列自值修改為b表中的指定列的值時,所用的sql語句在oracle和sql server中是不一樣的,如下 oracle中的語句 update a set a.col1 select b.col1 from b where a.key b.key and 其它限制 可選...