大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
mysql查询含逗号的数据,将逗号拆分为多行展示:
武鸣网站建设公司成都创新互联,武鸣网站设计制作,有大型网站制作公司丰富经验。已为武鸣上千家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的武鸣做网站的公司定做!
原始数据如下:
现在因为新的需求,需要将这些数据转化为如下形式:
假设我们需要处理的表结构为:
使用如下sql语句即可实现需求:
查询的主要思路为,原表与一个包含连续自增长字段的表进行join,得到字符串分隔后的索引值,其中 length( a.name ) - length( REPLACE ( a.name, ',', '' ) ) + 1 语句获得字符串逗号分隔之后得到的数据长度,两表关联之后,会得到相应行数的数据。比如,
在join之后会得到:
之后对查询中的结果,使用substring_index方法进行截取,然后得到我们自己想要的数据。
列转行:利用max(case when then)
`max``---聚合函数 取最大值`
`(`case course when '语文' then score else 0 end ) ---判断`
` as 语文``---别名作为列名`
我仅提供思路给你,至于其它单位,可以单独摘录出来,union all
select 始发地 目的地 起步价,sum(case when 区间 0 and 区间 = 20 then 单位价格 else '' end) '0-20(公斤)' ,
sum(case when 区间 20 and 区间 = 50 then 单位价格 else '' end) '20-50(公斤)' ,
sum(case when 区间 50 and 区间 = 100 then 单位价格 else '' end) '50-100(公斤)' from (你的sql语句) t group by t.始发地 ,t.目的地 ,t.起步价
有,一张表弄出新的两行,用case when then 拼出来,两张表外联在加casewhen then
select typeId,value1 from 表
union
select typeId,value2 from 表
union
select typeId,value3 from 表
union
select typeId,value4 from 表
........
union
select typeId,value10 from 表
注意,以上共19行(10行select、9行union)是一个语句,中间没有分号,这个语句的结果就是你想要的结果。