zoukankan      html  css  js  c++  java
  • 做SQL解析时遇到的问题

    相对于算术表达式,Json和XML等解析,SQL就比较复杂了。

    举个例子来说:符号“(”是目前的SqlAnalyzer1.00中作为进入递归的标志之一,到“)”结束,中间是个查询语句。如果测试用例也是这样,自然没有问题,但是,SQL是灵活的...

    首先,括号里未必是子查询,它可能是函数的一部分,比如count(*), 这时就得回退记号,然后按函数重读;

    其次,函数嵌套也常见,比如substr里面有个length,这时候读到第一个“)”就认为结束是不合情理的;

    其三,有时查询不是非放到括号里才能正常执行的。

    不知Oracle或是MySQL的解释器是怎么做的,我目前能做到无函数有select/from/where/order by子句,多重子查询的SQL解析,总之我感觉要做出一个完美普适的SQL解析器还需要一些时日。

    2020年5月28日

  • 相关阅读:
    CSS 文本
    javascript:void(0)的问题
    剑指offer
    牛课--C/C++
    Linux学习--第二波
    面经-csdn
    初学Linux
    二分查找法的实现和应用汇总
    vs2013下git的使用
    win10+vs2013+Qt5.4 安装方法
  • 原文地址:https://www.cnblogs.com/heyang78/p/12980015.html
Copyright © 2011-2022 走看看