查询最小数据所在行

simen_frankly 2008-12-04 04:07:23
现有一个datatable,有5*5,先查询这25个数据中最小数据所在行,该如何实现?谢谢~
...全文
101 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
birdlonger 2008-12-05
  • 打赏
  • 举报
回复
依旧mark!
zzyhuian06142 2008-12-05
  • 打赏
  • 举报
回复
1:
select 列,identity(int,1,1) as index into #Temp from 表
2:
select index,min(列) from #Temp
Hertz_liu 2008-12-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lijunfeng 的回复:]
就把它当成个二维数组然后按行列遍历啊
[/Quote]
二楼正解
liningln0 2008-12-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Sphonix 的回复:]
int nCount = datatable.count;
double dNumber = 0.0;
int nIndex = -1;
for( int i=0; i <nCount-1; i++ )
{
dNumber = datatable[i];
nIndex = 0;
for( int j=1; j <nCount; j++ )
{
double dTemp = datatable[i];
if( dNumber < dTemp )
{
dNumber = dTemp;
nIndex = j;
}
}
}

正确
return nIndex;
[/Quote]
zhoujk 2008-12-05
  • 打赏
  • 举报
回复
1次遍历数据即可
1.声明两个变量,int Min = 65536, MinLine = 0;
2.遍历,如果当前值比 Min 小,则 Min = 当前值, MinLine = 当前行
bbbbbb888888 2008-12-04
  • 打赏
  • 举报
回复
2次循环,遍历.很基础的问题.
GabrielCNMao 2008-12-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lijunfeng 的回复:]
就把它当成个二维数组然后按行列遍历啊
[/Quote]
11111
chtsir 2008-12-04
  • 打赏
  • 举报
回复
错拉,理解错拉,不好意思
chtsir 2008-12-04
  • 打赏
  • 举报
回复
分三步:
1.临时表,取出每列的最小值
CREATE TABLE #test(
amount int null

)

2.把每列的最小值插入临时表:
insert into #test
select min(a) from dbo.t_int
union select min(b) from dbo.t_int
union select min(c) from dbo.t_int
union select min(d) from dbo.t_int
union select min(e) from dbo.t_int

3.从临时表里取出最小值
select min(amount) from #test
claymore1114 2008-12-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lijunfeng 的回复:]
就把它当成个二维数组然后按行列遍历啊
[/Quote]
遍历 一下
yiyiwyy326 2008-12-04
  • 打赏
  • 举报
回复
大概意思:

int[] minnum=new int[]{0,0,0,0,0};
for (int i = 0; i < datatable.Rows.Count; i++)
{
for(int j=0;j>datatable.Columns.Count-1;j++)
{
if (Convert.ToInt32(datatable.Rows[i][j]) > Convert.ToInt32(datatable.Rows[i][j + 1]))
{
minnum[i] = Convert.ToInt32(datatable.Rows[i][j + 1]);
}
else
{
minnum[i] = Convert.ToInt32(datatable.Rows[i][j]);
}
}
}
int min = 0;
for (int i = 0; i < minnum.Length-1; i++)
{
if (minnum[i] > minnum[i + 1])
{
min = i + 1;
}
else
{
min = i;
}
}
Sphonix 2008-12-04
  • 打赏
  • 举报
回复
int nCount = datatable.count;
double dNumber = 0.0;
int nIndex = -1;
for( int i=0; i<nCount-1; i++ )
{
dNumber = datatable[i];
nIndex = 0;
for( int j=1; j<nCount; j++ )
{
double dTemp = datatable[i];
if( dNumber < dTemp )
{
dNumber = dTemp;
nIndex = j;
}
}
}
return nIndex;
lijunfeng 2008-12-04
  • 打赏
  • 举报
回复
就把它当成个二维数组然后按行列遍历啊
simen_frankly 2008-12-04
  • 打赏
  • 举报
回复
SOS~~~

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧