• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
翩翩
业精于勤,荒于嬉,行成于思,毁于随
博客园    首页    新随笔    联系   管理    订阅  订阅
SQL临时表备忘

Dear All,


I see a lot of use of temp table to say output a range of a records in database, but you don't need it at all. You can do:
 
say, you want list a table: 
 
select * from ccon_order_header_edi
 
and you want row 10 to 20:
 
SELECT * FROM 
(select row_number() over (order by orderid) rownum , * from ccon_order_header_edi) a
WHERE rownum BETWEEN 10 AND 20
 
 
Note that: row_number() over (order by orderid) is for generating the row number and all you need is to identify a field in your table for its order (in this case "orderid"). It is much more simple and don't need to generate/create a temp table.
 
So, I expect your stored procedure will be shorter/faster/easier to maintain.
 
Could you use this in all the new stored procedure and retrofit into old one when you need to change?
posted on 2013-08-29 09:05  翩翩  阅读(141)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3