怎样从数据库中取出符合条件的最后一条记录
比方说每个姓名对应1个电话号码,而有的电话号码相同,怎样取出每个电话号码最后一次出现的记录!能不能具体写出代码!...
比方说每个姓名对应1个电话号码,而有的电话号码相同,怎样取出每个电话号码最后一次出现的记录!
能不能具体写出代码! 展开
能不能具体写出代码! 展开
6个回答
展开全部
可以用到函数select1.
select1()
函数说明: 从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值
语法: datasetName.select1(selectExp{,filterExp{,rootGroupExp}})
参数说明: selectExp 要选择的字段列名/列号,,也可以是表达式。
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推 filterExp 过滤条件 rootGroupExp 是否root数据集表达式。
返回值: 数据类型不定,由selectExp的运算结果决定 特别说明: 当对数据集运用过滤条件后确定只剩一条记录时,虽然select的运算结果一样,但是select1运算效率高,因为他只要找到符合条件的记录,就不继续检索了,而select要检索完所有的记录才返回。
select1()
函数说明: 从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值
语法: datasetName.select1(selectExp{,filterExp{,rootGroupExp}})
参数说明: selectExp 要选择的字段列名/列号,,也可以是表达式。
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推 filterExp 过滤条件 rootGroupExp 是否root数据集表达式。
返回值: 数据类型不定,由selectExp的运算结果决定 特别说明: 当对数据集运用过滤条件后确定只剩一条记录时,虽然select的运算结果一样,但是select1运算效率高,因为他只要找到符合条件的记录,就不继续检索了,而select要检索完所有的记录才返回。
展开全部
表中如果有ID字段且为自增长型的:
sql="Select top 1 * from TABEL where Phone='88888888' order by id DESC"
因为是自增长,所以ID最大的就是最后添加进去的,用DESC来控制ID从大到小输出,加上Select top 1来控制取记录的个数,就是相册记录中最后一个!
明白思路之后,再结合你的数据表的结构,SQL语句的写法就多了:
1.Sql="Select top 1 * from TABEL where Phone='88888888' order by AddTime DESC"
2.select * from Table where AddTime=(select max(AddTime) from Table group by Name)
3.Sql="Select top 1 * from TABEL where Phone='88888888' order by ID DESC"
关键是思路正确。
sql="Select top 1 * from TABEL where Phone='88888888' order by id DESC"
因为是自增长,所以ID最大的就是最后添加进去的,用DESC来控制ID从大到小输出,加上Select top 1来控制取记录的个数,就是相册记录中最后一个!
明白思路之后,再结合你的数据表的结构,SQL语句的写法就多了:
1.Sql="Select top 1 * from TABEL where Phone='88888888' order by AddTime DESC"
2.select * from Table where AddTime=(select max(AddTime) from Table group by Name)
3.Sql="Select top 1 * from TABEL where Phone='88888888' order by ID DESC"
关键是思路正确。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用查找命令locate
设变量,把字段值付给变量,看查找是否为真,为真赋值继续查,为假继续查直到记录尾,最后为真所付的值即为“取出每个电话号码最后一次出现的记录!”
设变量,把字段值付给变量,看查找是否为真,为真赋值继续查,为假继续查直到记录尾,最后为真所付的值即为“取出每个电话号码最后一次出现的记录!”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
字段里有没有记录时间的?有的话可以这样
select * from 表名 where 记录时间=(select max(记录时间) from 表名 group by 姓名id)
select * from 表名 where 记录时间=(select max(记录时间) from 表名 group by 姓名id)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select top 1 from table where tel=123456 order by tel_time desc
就是它
没错的
简单管用
就是它
没错的
简单管用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询