select max(xxx)的问题!

yueyue 2002-07-13 04:00:25
"SELECT MAX(roomcode) FROM xm_roominfo WHERE (arrangecode = '12')"

虽然数据库中没有记录,但这个查询还是查出一条(只是里面的东西为空)!

请问怎么回事?
...全文
93 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shpblk 2002-07-16
  • 打赏
  • 举报
回复
"SELECT COUNT(roomcode) FROM xm_roominfo WHERE (arrangecode = '12')"
这是统计满足条件的记录数
yueyue 2002-07-16
  • 打赏
  • 举报
回复
那我怎么判断该表中是否没有记录?
难道要再读一次表或看看是否字段值为空?
CSDNM 2002-07-16
  • 打赏
  • 举报
回复
qxm(qxm)的方法很好
jishiping 2002-07-16
  • 打赏
  • 举报
回复
如果为空的话,字段的指为空。
Query1->SQL->Text = "SELECT MAX(roomcode) FROM xm_roominfo"
" WHERE (arrangecode = '12')";
Query1->Active = true;
if (Query1->Fields->Fields[0]->IsNull)
ShowMessage("无纪录");
else
ShowMessage("最大值="+Query1->Fields->Fields[0]->AsString);
qxm 2002-07-16
  • 打赏
  • 举报
回复
你这个SQL语句是不是就想知道有没有记录还是想得到最大值?
根本不需要判断两次,一个SQL语句就可以得到最大值,而不管是否有记录(假定没有记录就为0)
select isnull(max(roomcode),0) from xm_roominfo WHERE (arrangecode = '12')"
是不是可以给分啊?
yueyue 2002-07-16
  • 打赏
  • 举报
回复
也就是说怎么办都得判断两次了。
OK!
zbc 2002-07-14
  • 打赏
  • 举报
回复
你要的是最大值,而不是记录行
duckcn 2002-07-14
  • 打赏
  • 举报
回复
对!
jishiping 2002-07-13
  • 打赏
  • 举报
回复
因为你不是查询满足条件的纪录,而是查询最大值,所以查询结果就有一条纪录。
Yang_ 2002-07-13
  • 打赏
  • 举报
回复
是这样的

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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