SQL 编译错误:位置 6 处的语法错误第 2 行意外'R'

Posted

技术标签:

【中文标题】SQL 编译错误:位置 6 处的语法错误第 2 行意外\'R\'【英文标题】:SQL compilation error: syntax error line 2 at position 6 unexpected ' R'SQL 编译错误:位置 6 处的语法错误第 2 行意外'R' 【发布时间】:2021-08-11 19:12:07 【问题描述】:

我在 where 子句中使用了 RIGHT 函数,但它抛出了意外的错误“R”。请您在下面提供帮助

从 RIGHT(DATE, 10) ='2020-07-26' 的表中选择 *

【问题讨论】:

【参考方案1】:

您发布的是有效的 SQL。您省略的查询还有更多内容吗?

with tbl as (select $1 DATE from values ('2021-01-01'))

select * from tbl where RIGHT(DATE, 10) ='2021-01-01';

DATE
2021-01-01

【讨论】:

with cte as (SELECT max(MFP_LOAD_TS) as MFP_LOAD_TS FROM DEV_DL2_INSURANCE_RQ.ANNUITIES.OPERATIONS_LC3PD_FEE where RIGHT(MFP_FILE_ID, 10)='2021-07-26') 从 cte 中选择 MFP_LOAD_TS SQL 编译错误:位置 6 处的语法错误第 3 行意外“R”。位置 14 处的语法错误第 3 行意外的“MFP_FILE_ID”。位置 31 处的第 3 行语法错误意外'='。 Also MFP_FILE_ID Is varchar 我需要转换为日期值为“1628025367-LC3PD_FEE-20210730122830-2021-07-26”【参考方案2】:

问题已解决,因为 where 和 Right 之间有特殊字符

【讨论】:

【参考方案3】:

当我在 WHERE 和 RIGHT 关键字之间放置一个不可见字符时,我能够产生同样的错误。所以肯定有一个不可见的字符导致了这个错误。

作为一种解决方法,尝试从头开始重新编写查询,或者删除关键字之间的所有空格并重新放置空格。

【讨论】:

啊,我在发布我的回复 Jaswanth 时没有看到您的答案!

以上是关于SQL 编译错误:位置 6 处的语法错误第 2 行意外'R'的主要内容,如果未能解决你的问题,请参考以下文章

SQL 编译错误:位置 56 处的错误第 2 行无效标识符

SQL 编译错误:位置 157 的语法错误第 5 行意外'<EOF>'

新帐户命令未将电子邮件识别为字符串

通过 JTDS 驱动程序执行 SQL Server 调用时出现“第 24 行位置的 JDBC 转义语法无效 '=' 预期字符”错误的原因?

雪花声明在程序中不起作用

CTAS COPY INTO 的输出