⑴ 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'