当前位置: 首页 > 知识库问答 >
问题:

无法在AS400中运行SQL查询,遇到无效令牌错误

夹谷成仁
2023-03-14

在AS400中,我如何对字段执行算术运算(如,-)。

  • 对于查询选择id, sum(field d1 field d2)as Total from table group by id,在德语中获取以下错误msg"[IBM][System i Access ODBC-Treiber][DB2 für i5/OS]SQL0104-Token

有人能告诉我我的sql查询有什么问题吗?

共有2个答案

孔茂
2023-03-14

桌子的名字真的是“桌子”吗?

看起来很奇怪,如果我按原样使用你指示的SQL语句,我也会得到同样的错误……但是如果我将“table”更改为“table1”,它只会抱怨找不到“table1”。

胡越
2023-03-14

TABLE是保留字。SQL参考:保留的架构名称和保留的单词。

  • 单引号转义字符串文字
  • 双引号转义保留字(类似于TSQL中的括号)

SQL参考:标识符

查询可以重写为:

SELECT ID, SUM(FIELD1 + FIELD2) AS TOTAL FROM "TABLE" GROUP BY ID
SELECT COUNT(*) FROM (SELECT DISTINCT FIELD1 FROM "TABLE" WHERE FIELD2 = 'ABC')

更新

DB/2 for i不支持您在LIKE查询中使用的数字到字符转换方法或字符比较类型。

查询可以改写为:

SELECT eds, SUM(INT(sds)) AS totalh 
FROM tbl1 
WHERE eds BETWEEN 20130500 AND 20130599 
AND siteds IN (
    SELECT DISTINCT site 
    FROM tbl2 
    WHERE H_04 IN ('1234') AND PERIOD = 201305
) 
GROUP BY eds
ORDER BY eds

您可能需要使用DEC而不是INT,具体取决于字段sds定义

SQL参考:INT-DEC-BETWEEN

 类似资料:
  • 问题内容: 我正在尝试使用mybatis运行一个简单的sql查询,但是它给了我以下异常 我的UserMapper.xml是 我的UserMapper是 我试图在我的LoginController中访问它 我的spring-servlet.xml文件是 我不知道为什么会出现此错误。 问题答案: 看看错误 看来myBatis找不到您的查询。那可能是因为找不到您的xml映射。它应该符合您的配置: 在项目

  • 问题内容: 所涉及的rdms是oracle错误是 我想用这个查询做的是: 阈值表包含列阈值类型,其中包含现金交易表的列名称 对于阈值表中的每个记录,我们需要根据现金交易表中的阈值类型来比较总和(金额)组。 并将获取的数量与阈值表的threshold_amount比较 我需要选择threshold_id 阈值表: 现金交易表: 期望的输出: 让我们进行第一个提取:阈值表中的第一个记录 1.现在thr

  • 问题内容: 我使用此查询创建了一个表现 在,当我尝试使用插入一些数据时,遇到此错误。 我做错了什么? 问题答案: 不是日期,而是一个字符串。 当使用session参数的值作为格式掩码将Oracle非日期文字插入到列中时,Oracle将对其进行隐式处理( 注意:这是一个session参数,属于客户端;它不是全局设置 )。如果非日期文字与该格式匹配,则它将起作用(如果不匹配,则它将不起作用)-但是,如

  • 我尝试使用官方的Tarantool客户端从Golang应用程序运行SQL查询。我知道如何做的唯一方法是使用下面的。但我没有收到任何错误。我可以删除不存在的表,插入具有重复键的行。我永远不会发现出了什么问题。 你能指出获取错误的方法或运行SQL查询的正确方法吗?

  • 问题内容: 尝试为变量分配值时出现问题。当我尝试按以下顺序将日期作为元组或列表时,问题就会出现: 为什么要打apping? 我如何解决它? 令牌在Python中是什么意思? 问题答案: 在Python 3中,数字前导零是不允许的。例如: 等是不允许的,但应改为和。 但是,在Python 2中,前导零表示该数字是一个 八进制数 (以8为底),因此,或分别表示和,并且以八进制表示,但由于它不是有效的八

  • 我已经在stackoverflow中阅读了一些关于这个主题的其他帖子,但我仍然没有找到解决方案...:\ 非常感谢您的支持!