110,579
社区成员
发帖
与我相关
我的任务
分享
if not object_id('tab1') is null
drop table tab1
Go
Create table tab1([id] int,[name] int,[type] int)
Insert tab1
select 1,1,1 union all
select 1,1,2 union all
select 2,2,2
Go
declare @s nvarchar(4000)
set @s=''
Select @s=@s+','+quotename([type])+'=max(case when [type]='+quotename([type],'''')+' then [type] else 0 end)'
from tab1 group by[type]
exec('select [id],[name]'+@s+' from tab1 group by [id],[name]')
DataTable _Table =new DataTable();
_Table.Columns.Add("ID");
_Table.Columns.Add("Name");
_Table.Columns.Add("Age");
_Table.Columns.Add("Mail");
_Table.Rows.Add(new object[]{"1","张三","100","zhangsan@qq.com"});
_Table.Rows.Add(new object[]{"2","test","100","teste2@qq.com"});
_Table.Rows.Add(new object[]{"3","test1","100","test1@qq.com"});
dataGridView1.DataSource = GetReverseTable(_Table);
public DataTable GetReverseTable(DataTable p_Table)
{
DataTable _Table = new DataTable();
for (int i = 0; i != p_Table.Rows.Count + 1; i++)
{
_Table.Columns.Add("Column"+i.ToString());
}
for (int i = 0; i != p_Table.Columns.Count; i++)
{
object[] _ObjectValue = new object[p_Table.Rows.Count + 1];
_ObjectValue[0] = p_Table.Columns[i].ColumnName;
for (int z = 0; z != p_Table.Rows.Count; z++)
{
_ObjectValue[z + 1] = p_Table.Rows[z][i];
}
_Table.Rows.Add(_ObjectValue);
}
return _Table;
}