对于极其复杂的分析场景(如 SQL 无法表达或性能受限),SQlazy还可以生成SPL代码作为替代方案。SPL 是 esProc 的原生脚本语言,表达能力比SQL更强,支持有序计算和过程化逻辑。
点击后,会在.nsql文件同目录下自动生成 .spl 文件 ,比如将上面的stu_str.nsql编译为SPL,结果如下:
|
|
A |
|
1 |
>GDtable=demo.query("select * from GDtable") |
|
2 |
>SCORES=demo.query("select * from SCORES") |
|
3 |
>EMPLOYEE=demo.query("select * from EMPLOYEE") |
|
4 |
>STUDENT=demo.query("select * from STUDENT") |
|
5 |
=v1=demo.query("SELECT T_1_1.CLASS CLASS,T_1_1.STUDENTID STUDENTID,T_1_2.NAME NAME,T_1_2.GENDER GENDER,T_1_1.SUBJECT SUBJECT,T_1_1.SCORE SCORE from {SCORES\} T_1_1 LEFT JOIN \"STUDENT\" T_1_2 ON T_1_1.STUDENTID=T_1_2.ID") |
|
6 |
=v2=v1.select(CLASS=="Class one"&&STUDENTID<=3) |
|
7 |
=v3=v2.pivot@s(CLASS,STUDENTID,NAME,GENDER;SUBJECT,top@1(1,0,SCORE);) |