从数据库的层面上,使用union all
create view col2row
select time, 炉号 from tables
union all
select time, 真实度 from tables
union all
……
select time, 温度 from tables;
select * from col2row where time = '2018-03-01';
这种方法主要的缺点是不利于扩展,一旦改报表样式需要调整语句,可以创建视图,这样需要的话仅调整视图来实现扩展
1, 首先选择行数据,具体做法是用鼠标点住第一个数据然后向后托,托到需要粘帖的最后一个数据,这个时候所选的数据就称为焦点数据。
2,然后数据鼠标右键,就会出现下拉式菜单,在菜单中,我们选择“复制”。到这里,我们的行数据就暂时存于粘帖版中了。
3,找到需要转置数据的列首,然后在上面下拉菜单中找到“粘帖”,点击下面的小箭头,然后在点击“选择性粘帖”。
4,在窗口中,我们找到下半部分的“转置”,选择勾选。然后我们就看到列中把我们的数据粘帖过来了。效果如下图所示。以上过程就是行数据转置成列的过程了,希望对您有所帮助。
如果有帮助请记得给分哦,谢谢
1.不同的数据库有不同。
2.oracle数据库可以用plsql包来解决,带上oracle行转列就可以查到。
如果excel,可以直接有一个转置功能的,如果是数据库,就直接用循环吧!
复制,右击选择粘贴(转向)
如果excel,可以直接有一个转置功能的,
oracle 的话使用unpivot函数,SQL非常简单,你给表结果,我分分钟给你写好
http://blog.csdn.net/wf824284257/article/details/76713400 可以看一下这篇博客。
没看的明白你的图片中的数据关系,但是如果你是要对换的话可以使用for循环,如果数据量大的话会影响效率。
string [] rows = new string [datatable.rows.count+1]; //加一预防出问题,后期调整修改
for(int i=0;i<datatable.rows.count;i++)
{
rows[i] =datatable.rows[i][0].tosting();
}
然后将这个rows插入一个新的databale或者datagridview控件,这样子出来的行数据就是datatable的列数据。同理………………