mysql表怎么列转行,Mysql列转行

mysql列转行(逗号分隔)

mysql查询含逗号的数据,将逗号拆分为多行展示:

武鸣网站建设公司成都创新互联,武鸣网站设计制作,有大型网站制作公司丰富经验。已为武鸣上千家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的武鸣做网站的公司定做!

原始数据如下:

现在因为新的需求,需要将这些数据转化为如下形式:

假设我们需要处理的表结构为:

使用如下sql语句即可实现需求:

查询的主要思路为,原表与一个包含连续自增长字段的表进行join,得到字符串分隔后的索引值,其中 length( a.name ) - length( REPLACE ( a.name, ',', '' ) ) + 1 语句获得字符串逗号分隔之后得到的数据长度,两表关联之后,会得到相应行数的数据。比如,

在join之后会得到:

之后对查询中的结果,使用substring_index方法进行截取,然后得到我们自己想要的数据。

MySql列转行的技巧

列转行:利用max(case when then)

`max``---聚合函数 取最大值`

`(`case course when '语文' then score else 0 end ) ---判断`

` as 语文``---别名作为列名`

MySql 列转行 行转列

我仅提供思路给你,至于其它单位,可以单独摘录出来,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.起步价

mysql中怎么把列数据装换成行数据?

有,一张表弄出新的两行,用case when then 拼出来,两张表外联在加casewhen then

mysql 列转行

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)是一个语句,中间没有分号,这个语句的结果就是你想要的结果。


网页标题:mysql表怎么列转行,Mysql列转行
文章源于:http://myzitong.com/article/dscosoi.html