【发布时间】:2021-06-23 12:27:12
【问题描述】:
MySql 数据库版本 7.0 中出现语法错误
SELECT
r.id,
r.number,
r.numbertype,
r.forhandler,
LAG(r.number) OVER (PARTITION BY r.numbertype ORDER BY r.number) AS last_row_number,
LEAD(r.number) OVER (PARTITION BY r.numbertype ORDER BY r.number) AS next_row_number,
r.number -(LAG(r.number) OVER (PARTITION BY r.numbertype ORDER BY r.number)) AS gap_last_rk,
CAST (r.number-(LEAD(r.number) OVER (PARTITION BY r.numbertype ORDER BY r.`number`)) AS BIGINT SIGNED) AS gap_next_rk
FROM admin.numberranges r
WHERE r.status=2
ORDER BY r.number;
语法错误出现在我的 CAST 部分。我的 NUMBER 列是 BIG INT UNSIGNED。
我也尝试过转换 -:(
Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BIGINT SIGNED) AS neg_number
【问题讨论】:
-
标签有助于吸引可以帮助回答问题的人的注意力。从错误消息中可以清楚地看出,OP 使用的是 MariaDB,而不是 MySQL。这些是不同的软件产品。 MariaDB 于 2010 年开始作为 MySQL 的一个分支,但现在它有很多不同之处,以至于它应该被视为一个不同的、不兼容的产品。
标签: mariasql