用于测试 SqlAnalyzer1.01 的21个测试用例

感慨:当年看着 https://www.cnblogs.com/heyang78/p/11451814.html 一文望洋兴叹,如今我也自己做出来了!

21.

原文=select name, cnt from (select name from tb order by name,id,age,level)
整理后文本=
select
    name,
    cnt
from
    (
    select
        name
    from
        tb
    order by
        name ,
        id ,
        age ,
        level )

20.

原文=select a from tc,(select a1,a2 from (select 1,2,3 from tc where a>2 and b>3 and c>4 group by a,b having a=2 and b=3 order by a,c) tre order by a1) tb order by a
整理后文本=
select
    a
from
    tc,
    (
    select
        a1,
        a2
    from
        (
        select
            1,
            2,
            3
        from
            tc
        where
            a>2 and
            b>3 and
            c>4 
        group by
            a,
            b
        having
            a=2 and
            b=3 
        order by
            a ,
            c ) tre
    order by
        a1 ) tb
order by
    a 

19.

原文=select name, cnt from tb where age=41 and age=42 and age=43 and level>9 or salary<30000 group by name,id order by name,id,age,level
整理后文本=
select
    name,
    cnt
from
    tb
where
    age=41 and
    age=42 and
    age=43 and
    level>9 or
    salary<30000 
group by
    name,
    id
order by
    name ,
    id ,
    age ,
    level 

18.

原文=select name, cnt from tb where age=41 and age=42 and age=43 and level>9 or salary<30000 order by name,id,age,level
整理后文本=
select
    name,
    cnt
from
    tb
where
    age=41 and
    age=42 and
    age=43 and
    level>9 or
    salary<30000 
order by
    name ,
    id ,
    age ,
    level 

17.

原文=select name from tb where age=41 and level>9 or salary<30000 order by name,id,age,level
整理后文本=
select
    name
from
    tb
where
    age=41 and
    level>9 or
    salary<30000 
order by
    name ,
    id ,
    age ,
    level 

16.

原文=select name from tb where age=41 and level>9 or salary<30000 order by name,id desc,age asc
整理后文本=
select
    name
from
    tb
where
    age=41 and
    level>9 or
    salary<30000 
order by
    name ,
    id desc,
    age asc

15.

原文=select name from tb where age=41 and level>9 or salary<30000 order by name asc,id desc,age
整理后文本=
select
    name
from
    tb
where
    age=41 and
    level>9 or
    salary<30000 
order by
    name asc,
    id desc,
    age 

14.

原文=select name from tb where age=41 and level>9 or salary<30000 order by name
整理后文本=
select
    name
from
    tb
where
    age=41 and
    level>9 or
    salary<30000 
order by
    name 

13.

原文=select name from tb where age=41 and level>9 or salary<30000
整理后文本=
select
    name
from
    tb
where
    age=41 and
    level>9 or
    salary<30000 

12.

原文=select name from tb where age=41
整理后文本=
select
    name
from
    tb
where
    age=41 

11.

原文=select (select f1,f2,f3 from tbable) as x,(select a from tc) as cnt from b
整理后文本=
select
    (
    select
        f1,
        f2,
        f3
    from
        tbable) x,
    (
    select
        a
    from
        tc) cnt
from
    b

10.

原文=select name as name,birthday as b,column c from tc c,tb b,(select a1,a2,a3 from (select * from tbc) tbc) ta
整理后文本=
select
    name name,
    birthday b,
    column c
from
    tc c,
    tb b,
    (
    select
        a1,
        a2,
        a3
    from
        (
        select
            *
        from
            tbc) tbc) ta

09.

原文=select name as name,birthday as b,column c from (select a,c,b from tb) tb,(select a1,a2,a3 from (select * from (select t1,t2,t3,t4,t5,t6 from (select t1,t2,t3,t4,t5,t6,t7 from table4 ) t2) t1) tbc) ta
整理后文本=
select
    name name,
    birthday b,
    column c
from
    (
    select
        a,
        c,
        b
    from
        tb) tb,
    (
    select
        a1,
        a2,
        a3
    from
        (
        select
            *
        from
            (
            select
                t1,
                t2,
                t3,
                t4,
                t5,
                t6
            from
                (
                select
                    t1,
                    t2,
                    t3,
                    t4,
                    t5,
                    t6,
                    t7
                from
                    table4) t2) t1) tbc) ta

08.

原文=select name as name,birthday as b,column c from (select a,c,b from tb) tb,(select a1,a2,a3 from (select * from (select t1,t2,t3,t4,t5,t6 from test) t1) tbc) ta
整理后文本=
select
    name name,
    birthday b,
    column c
from
    (
    select
        a,
        c,
        b
    from
        tb) tb,
    (
    select
        a1,
        a2,
        a3
    from
        (
        select
            *
        from
            (
            select
                t1,
                t2,
                t3,
                t4,
                t5,
                t6
            from
                test) t1) tbc) ta

07.

原文=select name as name,birthday as b,column c from (select a,c,b from tb) tb,(select a1,a2,a3 from (select * from tbc) tbc) ta
整理后文本=
select
    name name,
    birthday b,
    column c
from
    (
    select
        a,
        c,
        b
    from
        tb) tb,
    (
    select
        a1,
        a2,
        a3
    from
        (
        select
            *
        from
            tbc) tbc) ta

06.

原文=select name as name,birthday as b,column c from (select a,c,b from tb) tb,(select a1,a2,a3 from table_a) ta
整理后文本=
select
    name name,
    birthday b,
    column c
from
    (
    select
        a,
        c,
        b
    from
        tb) tb,
    (
    select
        a1,
        a2,
        a3
    from
        table_a) ta

05.

原文=select name as name,birthday as b,column c from (select a,c,b from tb) tb
整理后文本=
select
    name name,
    birthday b,
    column c
from
    (
    select
        a,
        c,
        b
    from
        tb) tb

04.

原文=select name as name,birthday as b,column c from tb
整理后文本=
select
    name name,
    birthday b,
    column c
from
    tb

03.

原文=select name name,birthday b,column c from tb
整理后文本=
select
    name name,
    birthday b,
    column c
from
    tb

02.

原文=select a,b,c from tb,tc,td,tf f,tg g
整理后文本=
select
    a,
    b,
    c
from
    tb,
    tc,
    td,
    tf f,
    tg g

01.

原文=select a from b
整理后文本=
select
    a
from
    b

虽然还有力有未逮之处,但相对于之前用循环分支和正则表达式去硬解析好多了。

--2020年5月29日--

posted @ 2020-05-29 10:04  逆火狂飙  阅读(168)  评论(0编辑  收藏  举报
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东