使用" AS" alasql中的SQL语句中的子句(AngularJS)

时间:2016-04-04 09:24:22

标签: javascript sql angularjs export-to-excel alasql

正如标题所描述的那样,我遇到了问题,一旦我尝试在角度模块alasql的sql语句中使用AS子句,我就会收到错误消息。

将显示以下错误消息:

  

错误:第1行的解析错误:... shortcode AS短代码,fname AS全名   ----------------------- ^期待' EOF',' WITH',' COMMA&#39 ;,' RPAR',' PIVOT',' UNPIVOT','删除','订购',' ;',' UNION',' INTERSECT',   '除了'来自',' INTO',' GROUP',' LIMIT',' OFFSET& #39;,' END',' ELSE',   ' SEMICOLON',' GO',得到' LITERAL'

我不确定,我做错了什么。 在wiki中,他们也没有问题地使用AS子句。

我的角度代码非常简单,如下所示:

vm.btnExport = function () {
   alasql('SELECT shortcode AS Short code, fname AS fullname INTO XLSX("test.xlsx",{headers:true}) FROM ?', [vm.list]);
};

2 个答案:

答案 0 :(得分:1)

大多数(如果不是所有)数据库都不允许表,列名或别名中的空格。在Alasql中使用方括号[]。因此,对于您的情况,您可以将Short Code重命名为Short_Code,或者您可以使用[Short Code]。但是...在Alasql中有很多关键字。为了安全起见,我在所有不是关键字的地方放置方括号。

alasql('SELECT [shortcode] AS [Short code], [fname] AS [fullname] INTO XLSX("test.xlsx",{headers:true}) FROM ?', [vm.list]);

答案 1 :(得分:0)

我找到了解决问题的方法。这是AS子句之后的空格字符。

它只允许定义一个单词而不是两个单词。

示例:

vm.btnExport = function () {
   alasql('SELECT shortcode AS Short_Code, fname AS fullname INTO XLSX("test.xlsx",{headers:true}) FROM ?', [vm.list]);
};