请教一个SQL查询语句 急!!!!

z289830131 2010-09-21 01:49:03
有一个表 表名为module
2个字段
moduleCode moduleName
HELP 帮助中心
HELP001 帮助中心
HELP002 帮助中心
HELP003 帮助中心
HELP00101 帮助中心
HELP00102 帮助中心
HELP00103 帮助中心
HELP00104 帮助中心
HELP00105 帮助中心
HELP00106 帮助中心
HELP00107 帮助中心
HELP00108 帮助中心

字段moduleCode不是自动增长列 也不是主键
我现在想写一条查询语句 使得每次都能获得字段moduelCode最后一条数据 比如现在就是查询出HELP00108
请大家帮帮我 不胜感激
...全文
105 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinpoal 2010-09-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 itxupgy 的回复:]
为什么不增加一个自增字段呢,这样不就能简单的找到最后一条了吗?
[/Quote]
楼主何不用4 楼的方法啊!
fpzgm 2010-09-21
  • 打赏
  • 举报
回复
HELP后面的数字是随机的?那就没有大小顺序,这就没法找了吧,可以设为自增列或是增加一个插入的时间的字段,那样就好了吧
HSBOY86 2010-09-21
  • 打赏
  • 举报
回复
刚回答你的答案有问题吗?
itxupgy 2010-09-21
  • 打赏
  • 举报
回复
为什么不增加一个自增字段呢,这样不就能简单的找到最后一条了吗?
「已注销」 2010-09-21
  • 打赏
  • 举报
回复
取后三码最大值来判断,写法:
SELECT moduleCode, moduleName
FROM tb AS t
WHERE (NOT EXISTS
(SELECT 1 AS Expr1
FROM (SELECT moduleName, MAX(RIGHT(moduleCode, 3)) AS res
FROM tb
WHERE (t.moduleName = moduleName)
GROUP BY moduleName) AS m
WHERE (RIGHT(moduleCode, 3) < res) AND (moduleName = t.moduleName)))
hao1hao2hao3 2010-09-21
  • 打赏
  • 举报
回复
没有其他标识列?

那怎么能判断是最后一条呢?

select * from module where moduleCode = (select top 1 moduleCode from module order by moduleCode desc)
「已注销」 2010-09-21
  • 打赏
  • 举报
回复
SELECT     moduleCode, moduleName
FROM tb AS t
WHERE (NOT EXISTS
(SELECT 1 AS Expr1
FROM (SELECT moduleName, MAX(RIGHT(moduleCode, 3)) AS res
FROM tb
WHERE (t.moduleName = moduleName)
GROUP BY moduleName) AS m
WHERE (RIGHT(moduleCode, 3) < res) AND (moduleName = t.moduleName)))

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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