终端错误中的SQL:期望的输入')'不匹配(接近原始类型规范中的'VARCHAR'

时间:2019-02-07 23:28:46

标签: sql mysqli terminal

从代码编辑器复制/粘贴代码到终端时,我在终端中收到以下错误:

  

read.table

这是有问题的SQL代码:

mismatched input ')' expecting ( near 'VARCHAR' in primitive type specification

我使用“ substr”子句的原因是因为我要在一个表中加入的数字前面有一个字母:

例如left outer join order_history b ON CAST(substr(a.order_id__c, 2)AS VARCHAR) = CAST(b.order_id AS VARCHAR) P123456

2 个答案:

答案 0 :(得分:0)

VARCHAR不是the CAST() function的有效类型。您可以改用CHAR。另外,由于SUBSTR()返回一个字符串,因此不必CAST返回其结果。

我想在这种情况下,MySQL隐式强制转换应该允许您这样做:

substr(a.order_id__c, 2) = b.order_id

否则,我会推荐:

CAST(substr(a.order_id__c, 2) AS SIGNED) = b.order_id

答案 1 :(得分:0)

VARCHAR可以在CAST中使用。

该错误是因为未提及VARCHAR的长度。