用sql實現兩行記錄合併為一行記錄

2021-06-08 03:15:20 字數 1131 閱讀 4120

偶然遇到同學問了個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...