Asp.net 如何在SQL中将行转换为列?
实际上,我有一个查询,它在一行中为每一行返回5列和值(日期),但我想要的是列名称应该在一列Asp.net 如何在SQL中将行转换为列?,asp.net,sql,Asp.net,Sql,实际上,我有一个查询,它在一行中为每一行返回5列和值(日期),但我想要的是列名称应该在一列标题中,其(Vale)应该在日期的第二列中 注意Title和Date是我刚刚在运行时创建的临时表的列 这是我正在使用的一段代码 protected void btnAlerts_Click(object sender, EventArgs e) { fnSaveAlerts(); } private void fnSaveAlerts() { DataTable dtTemp = n
标题
中,其(Vale)应该在日期
的第二列中
注意Title
和Date
是我刚刚在运行时创建的临时表的列
这是我正在使用的一段代码
protected void btnAlerts_Click(object sender, EventArgs e)
{
fnSaveAlerts();
}
private void fnSaveAlerts()
{
DataTable dtTemp = new DataTable();
DataColumn dtC1 = new DataColumn();
dtC1.DataType = typeof(String);
dtC1.ColumnName = "Title";
DataColumn dtc2 = new DataColumn();
dtc2.DataType = typeof(DateTime);
dtC1.ColumnName = "Date";
dtTemp.Columns.Add(dtC1);
dtTemp.Columns.Add(dtc2);
LeadsContracts ObjLeadsContract = new LeadsContracts();
ObjLeadsContract.ExecuteSql(@"select dtDisclosure, dtDueDiligence,
dtFinanceAppraisals, dtFreeTextDate1,
dtFreeTextDate2
from LeadsContracts
where dtDisclosure is not null
and dtDueDiligence is not null
and dtFinanceAppraisals is not null
and dtFreeTextDate1 is not null
and dtFreeTextDate2 is not null");
dtTemp.DataSet = ObjLeadsContract.DefaultView; // it also gives error here "Red line"
}
我已经花了一整天的时间来做这件事,请任何人都能帮助我。提前感谢我将为您提供解决方案提示:
对于您的问题,可以使用二维数组 [0][“标题”,数据库值]
[1] [“日期”,数据库值]
[2] [
[3] [
[4] [
因此,首先循环查询的五个值并填充到二维数组中 [0][1]
[1] [1]
[2] [1]
[3] [1]
[4] [1]
然后,您可以在二维数组上循环以获得输出…您是否期望这样的结果
DECLARE @Temp AS TABLE (dtDisclosure varchar(20),dtDueDiligence varchar(20),dtFinanceAppraisals varchar(20),dtFreeTextDate1 varchar(20),dtFreeTextDate2 varchar(20))
INSERT INTO @Temp VALUES ('20-Apr-2013','20-Apr-2013','20-Apr-2013','20-Apr-2013','20-Apr-2013'),
('21-Apr-2013','21-Apr-2013','21-Apr-2013','21-Apr-2013','21-Apr-2013')
SELECT [Title],[Date] FROM
(
SELECT * FROM @temp
} A
UNPIVOT
{
[Date] FOR [Title] IN IN ([dtDisclosure],[dtDueDiligence],[dtFinanceAppraisals],[dtFreeTextDate1],[dtFreeTextDate2])
} AS Unpvt;
输出:
Title Date
dtDisclosure 20-Apr-2013
dtDueDiligence 20-Apr-2013
dtFinanceAppraisals 20-Apr-2013
dtFreeTextDate1 20-Apr-2013
dtFreeTextDate2 20-Apr-2013
dtDisclosure 21-Apr-2013
dtDueDiligence 21-Apr-2013
dtFinanceAppraisals 21-Apr-2013
dtFreeTextDate1 21-Apr-2013
dtFreeTextDate2 21-Apr-2013
这很好,但如果我们不知道日期,我的意思是,如果v有多行或多条记录,它将如何工作?检查这个…如果这是您想要的…行到列转换。。。。。。。。。