偶然遇到同學問了個sql的問題,閒著沒事搗鼓了一下。
他的問題是:如何把下面這樣的資料,每兩行資料按照第乙個字段合併為一行。
create table tp_user(
user_no varchar2(2char),
user_name varchar2(10 char)
)user_no user_name
01 a
01 b
02 a
02 b
合併的效果:01 a;b
02 a;b
我用toda大概寫了乙個能實現的,應該還有很大優化空間,以後有空再看。
select
a.user_no,a.
user_name ||
';'|| b
.user_name
from
(select
user_no
,user_name
from
(select
row_number ()
over
(partitionby(
user_no
)order
byuser_no)
i, user_no,
user_name
from
tp_user)
wherei =
1)a,
(select
user_no
,user_name
from
(select
row_number ()
over
(partitionby(
user_no
)order
byuser_no)
i, user_no,
user_name
from
tp_user)
wherei =
2)b
where
a.user_no =b
.user_no;
執行結果如圖:
MySQL實現把兩行兩列資料合併為一行一列
最近在oa專案中使用acitiviti中,遇到乙個排他閘道器有多個判斷條件 並且可以多次執行,在顯示已辦任務的時候要歸屬為一條資料,利用group concat和concat加上group by 解決。詳細sql如下 select aht.id as id,ard.name as processna...
再談 Sql 兩行變一行 例項
要求 按 lct1,lct2 排序後的前兩條紀錄,顯示為下列結果 item cd1 item cd2 lct 01 a a01 3 b01 1 建表準備 if exists select table name from information schema.tables where table na...
pyspark列合併為一行
將dataframe利用pyspark列合併為一行,類似於sql的group concat函式。例如如下dataframe s d abcd 123 asd 123 需要按照列相同的列d將s合併,想要的結果為 d newcol 123 abcd,xyz code from pyspark.sql i...