❶ MySQL,如何将一列根据条件转化为三列
这是不合理的, 你这个问题本身就存在错误,同一个表 固定的一个字段 每个字段对应了 一条数据,如果 1 是2和3的父 那么可以转成 1 2 13 两条数据,其他的不行,破坏了数据结构
❷ mysql 多列转多行
你可以这样
selectid,type,name,c1asc_nunion
selectid,type,name,c2asc_nunion
selectid,type,name,c3asc_nunion
selectid,type,name,c4asc_nunion
selectid,type,name,c5asc_norderbyid;
看看行不
❸ sql 数据表一列变多列
--测试环境mssql2008
--这就是行列转换
CreateTAbleT
(
日期date,
时间time,
设备Varchar(10),
数值int
)
insertintoTvalues('2015-10-15','10:11:12',1,10)
insertintoTvalues('2015-10-15','10:11:12',2,11)
insertintoTvalues('2015-10-15','10:11:12',3,12)
insertintoTvalues('2015-10-15','10:11:12',4,13)
insertintoTvalues('2015-10-15','10:11:12',5,14)
insertintoTvalues('2015-10-15','10:11:12',6,10)
insertintoTvalues('2015-10-15','10:11:12',7,11)
insertintoTvalues('2015-10-15','10:12:12',1,2)
insertintoTvalues('2015-10-15','10:12:12',2,3)
insertintoTvalues('2015-10-15','10:12:12',3,4)
select*fromt
pivot
(
sum(数值)
for
设备in([1],[2],[3],[4],[5],[6],[7])
)p
select日期,时间,
SUM(Casewhen设备=1then数值else0end)As[1],
SUM(Casewhen设备=2then数值else0end)As[2],
SUM(Casewhen设备=3then数值else0end)As[3],
SUM(Casewhen设备=4then数值else0end)As[4],
SUM(Casewhen设备=5then数值else0end)As[5],
SUM(Casewhen设备=6then数值else0end)As[6],
SUM(Casewhen设备=7then数值else0end)As[7]
fromt
Groupby日期,时间
❹ mysql 中怎么把一列多行变成一行多列
mysql 中怎么把一列多行变成一行多列
你这个转换的规则貌似无法用简单的sql实现,还是用游标进行循环吧。
❺ mysql中将一列以逗号分隔的值分割成多列显示
可以用
SUBSTRING
_INDEX()函数
在mysql中提供了一些
字符串操作
的函数,其中SUBSTRING_INDEX(str,
delim,
count)
str:
要处理的字符串
delim:
分割符
count:
计数
如果为正数,则从左开始数,如果为负数,则从右开始数
❻ SQL返回一列数据变成多列
正解
SELECT 名字,SUM(CASE WHEN 类型=1 THEN 1 ELSE 0 END) AS 类型A,
SUM(CASE WHEN 类型=2 THEN 1 ELSE 0 END) AS 类型B,
SUM(CASE WHEN 类型=3 THEN 1 ELSE 0 END) AS 类型C,
COUNT(*) AS 总计
FROM 表
GROUP BY 名字
❼ 如何将mysql表的一列拆分为多列
请慢Copy到Excel:
先Copy到Word——全选——菜单栏——表格——转换——文本转换成表格——(默认空格)——确定;
全选——复制——Excel菜单栏——编辑——选择性粘贴——文本——确定;
哪些需要合并的再合并:
1、直接各刷选后一次操作:Ctrl+1——对齐——文本控制——合并单元格——确定。
2、另起一列用&号合并:输入(如=B1&C1&D1)回车并下拉;
选该列——复制——菜单栏——编辑——选择性粘贴——数值——确定——删除原来的列。
❽ mysql如何从一列数据中做处理变成两列
汗 加个字段啊
SQL语句:
ALTER TABLE `表名` ADD `字段名` int( 11 ) NOT NULL ;
❾ mysql 存储过程把一列分多列
不需要写过程的,就是个行转列查询,使用group by分组即可,语句如下:
INSERT INTO New_Mydata
(Nameid, Allc1, Allc2, Allc3, Allc4, ALL)
SELECT Nameid,
SUM(CASE Allc WHEN '满意' THEN 1 ELSE 0 END),
SUM(CASE Allc WHEN '一般' THEN 1 ELSE 0 END),
SUM(CASE Allc WHEN '不满意' THEN 1 ELSE 0 END),
SUM(CASE Allc WHEN '未平' THEN 1 ELSE 0 END),
SUM(*)
FROM Mydat
GROUP BY Nameid
❿ mysql 如何批量修改一列数据
26个英文字母,a的排序为1,……,z的排序为26。建议采用存储过程循环批量处理。