SPL 简单 sql 中的 4 个小问题

大佬们,我在学习 SPL 的简单 sql 语句时碰到 4 个小问题,恳请指点解惑。

一、SPL 主目录下有 3 个相同结构的 xlsx 文件,文件名分别为 a1、a2、a3,简单 sql 语句可以实现把这 3 个同结构文件合并,如下所示:

imagepng

问题 1:文件名可以用通配符,那扩展名里可不可以也实现使用通配符,比如,.*x 表示 xlsx 文件和 btx 文件,.xls? 表示 xls 或者 xlsx 文件。

问题 2:用 _file 返回路径时,路径中的分隔符 "\" 不见了,具体如上图所示。

因为在 SPL 中,用 directory 时,不存在以上两个问题,通配符在文件名和扩展名里均可使用,返回的路径也是完整的,如下图所示:

imagepng

二、简单 sql 语句可以读 csv 文件,这个很好用,但是如果字段对应的值里也有逗号,就会缺失部分数据。比如有一个标准的 csv 文件,用 file().import@tqc() 读出来是这样的:

imagepng
可以看到,原因字段里的值也是用逗号分隔的,此处要作为整体读出来,@q 选项很好的解决了这个问题。但是,如果用简单 sql 语句去读取时,字段值有一部分数据没了,如下:

imagepng

所以,问题 3:用 sql 语句读取文本文件时 (csv,txt),如果分隔符比较特殊,需要怎么处理?

问题 4:sql 语句中也有 pivot 语句,比如 sql server 里的 pivot 或者 oracle 里也有 pivot,甚至是 access 的 sql 语句也有 pivot 关键词,比如以下语句在 VBA 里调用 ADODB 是可以跑出结果来的:

TRANSFORM SUM(成绩) SELECT 姓名 FROM [成绩表 $] WHERE 成绩 >=60 GROUP BY 姓名 PIVOT 学科

在 SPL 里,sql 语句必须以 select 开始,所以这样写是跑不通的,但 SPL 又支持 with 语句,我在想 SPL 是不是也能实现一个 pivot 语句?

以上 4 个小问题,恳请大佬们得闲时给予帮助,谢谢!