zoukankan      html  css  js  c++  java
  • Oracle粗心大意总结篇

    有时候写sql语句不细心的话,很容易犯大错误,导致你纠结好久,找不到原因,慢慢总结:

    错误1:

    SELECT * FROM
    (
    SELECT USER.*, ROWNUM AS CON FROM USER WHERE ROWNUM <= 10 AND to_char(save_log_time,'yyyymmdd')=to_char(sysdate,'yyyymmdd') ORDER BY money desc
    )
    WHERE CON >=1;

    正确1:

    SELECT * FROM
    (select b.*,ROWNUM rn from (select a.* from USER a WHERE to_char(save_log_time,'yyyymmdd')=to_char(sysdate,'yyyymmdd') order by money desc) b)
    WHERE rn BETWEEN 5 AND 10

    总结:其实是想把今天的数据拿出来,按照拥有的钱多少排序,然后再取从多少到多少条进行处理,但是一开始没注意,就图个快,嗖嗖嗖的写好语句,结果没注意,后台调试以为代码错误,后来吗,才想起sql写的不对哈。

    原因:因为如上错误的语句,直接连取出指定值和排序一起执行,这样是不对的,是取不出正常的数据,所以需要改为正确的语句,先把要用的数据排序全查不出来之后,再去嵌套一层,取出你想要的哪条到哪条,这样搞定。

  • 相关阅读:
    蓝屏的钙,好喝的钙
    正则
    JavaScript 获取当前时间戳 (3种方式)
    react-native upoad imagepicker
    xmlhttprequest请求
    修改配置使fiddler可以查看https请求
    安装composer
    判定 android IOS
    看端口任务
    squid 缓存Internet 软件
  • 原文地址:https://www.cnblogs.com/emperorking/p/7754336.html
Copyright © 2011-2022 走看看