當前位置:首頁 » 編程語言 » sql多行數據合並為一行
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql多行數據合並為一行

發布時間: 2022-07-02 06:56:53

sql帶條件多條數據合並為一條數據並換行

修正現在的表添加一個唯一的標識
先按條件分組,統計兩個關鍵的內容
數量:大於1的時需要刪除的
max或min的標識: 用於刪除得行標識
delete from 表where id in(
slect id ,count(*) ,max(id) from 表 groupby id
having count(*)>1
)
如果有大於2的重復記錄,需要在寫循環刪除

⑵ SQL多行合並為一行,SQL語句如何寫

selectid,max(語文)語文,max(數學)數學,max(英語)英語
fromtab
groupbyid

⑶ SQL 多行數據合並成一行

group by 前面相同的欄位,後面不同的,用max取。
SELECT m.member_id,
prefix_desc 'Prefix:',
UPPER(first_name) 'First Name:',
UPPER(last_name) 'Last Name:',
UPPER(email) 'Email:',
LOWER(user_id) 'User ID:',
REPLICATE('*',LEN(password)) 'Password:',
('****'+SUBSTRING(license_no,5,4)) 'Drivers Licese Number:',
REPLACE(email_ind,'Y','Accept') 'Email notification:',
REPLACE(return_ind,'Y','Accept') 'HERIZ E-RETURN',
max(CASE WHEN tel_type= 'B' THEN tel_number END + ' '+REPLACE(pref_phone_ind,'P','PREF')) 'Business Phone',
max('('+ p.country_code + ')'+ CASE WHEN tel_type= 'M' THEN tel_number END) 'Mobile Number',
max(CASE WHEN tel_type= 'F' THEN tel_number END) 'Fax'
FROM MEMBER m, license l, phone_fax p
WHERE m.member_id = l.member_id
AND m.member_id = p.member_id
AND m.member_id = 'A000001'
group by
m.member_id,
prefix_desc 'Prefix:',
UPPER(first_name) 'First Name:',
UPPER(last_name) 'Last Name:',
UPPER(email) 'Email:',
LOWER(user_id) 'User ID:',
REPLICATE('*',LEN(password)) 'Password:',
('****'+SUBSTRING(license_no,5,4)) 'Drivers Licese Number:',
REPLACE(email_ind,'Y','Accept') 'Email notification:',
REPLACE(return_ind,'Y','Accept') 'HERIZ E-RETURN'

⑷ 如何用sql語句將多行合並成一行

select id ,time,sum(2),sum(3),sum(4)... from 表
group by id,time
order time
如果time 不是字元類型分組分的不對可以直接轉成字元類型到天再用

⑸ my sql資料庫里能夠把三行中的某個欄位合並在一行嗎

使用方法:
CONCAT(str1,str2,…)
返回結果為連接參數產生的字元串。如有任何一個參數為NULL ,則返回值為 NULL。
注意:
如果所有參數均為非二進制字元串,則結果為非二進制字元串。
如果自變數中含有任一二進制字元串,則結果為一個二進制字元串。
一個數字參數被轉化為與之相等的二進制字元串格式;若要避免這種情況,可使用顯式類型 cast, 例如:
SELECT CONCAT(CAST(int_col AS CHAR), char_col)
MySQL的concat函數可以連接一個或者多個字元串
MySQL的concat函數在連接字元串的時候,只要其中一個是NULL,那麼將返回NULL

⑹ SQL實現多行數據合並為一行

select a,b max(c),max(d)...,max(j) from t group by a,b

⑺ SQL多行數據合並為1行並去除空值

selecteventtype,mainevenname,max(totalspace)totalspace,totalspaceunit,max(freespace)freespace,freespaceunit,max(freepercent)freepercent,freepercentunitfrom表名groupbyenenttype,maineventname,totalspaceunit,freespaceunit,freepercentunit

這樣?表名自己替換

⑻ sql把同一id有不同屬性值的多行數據合並成一行

很簡單,同一個表兩個id關聯,用連接符||就行。
select a.id,a.name||b.name
from table a,table b
where a.id=b.id

⑼ sql 數據怎麼多行合並成一行

group by 前面相同的欄位,後面不同的,用max取。
SELECT m.member_id,
prefix_desc 'Prefix:',
UPPER(first_name) 'First Name:',
UPPER(last_name) 'Last Name:',
UPPER(email) 'Email:',
LOWER(user_id) 'User ID:',
REPLICATE('*',LEN(password)) 'Password:',
('****'+SUBSTRING(license_no,5,4)) 'Drivers Licese Number:',
REPLACE(email_ind,'Y','Accept') 'Email notification:',
REPLACE(return_ind,'Y','Accept') 'HERIZ E-RETURN',
max(CASE WHEN tel_type= 'B' THEN tel_number END + ' '+REPLACE(pref_phone_ind,'P','PREF')) 'Business Phone',
max('('+ p.country_code + ')'+ CASE WHEN tel_type= 'M' THEN tel_number END) 'Mobile Number',
max(CASE WHEN tel_type= 'F' THEN tel_number END) 'Fax'
FROM MEMBER m, license l, phone_fax p
WHERE m.member_id = l.member_id
AND m.member_id = p.member_id
AND m.member_id = 'A000001'
group by
m.member_id,
prefix_desc 'Prefix:',
UPPER(first_name) 'First Name:',
UPPER(last_name) 'Last Name:',
UPPER(email) 'Email:',
LOWER(user_id) 'User ID:',
REPLICATE('*',LEN(password)) 'Password:',
('****'+SUBSTRING(license_no,5,4)) 'Drivers Licese Number:',
REPLACE(email_ind,'Y','Accept') 'Email notification:',
REPLACE(return_ind,'Y','Accept') 'HERIZ E-RETURN'