MySQL中CAST函数报'AS'关键字语法错误的排查与修复
CAST语句错误原因及修正
你的CAST语句语法错误的核心问题是多了一层不必要的括号,导致AS关键字的位置不符合MySQL的CAST函数语法规范。
错误语句的问题点
原语句中:
SELECT CAST((MAX(LAT_N) AS DECIMAL(10,4)) FROM STATION WHERE LAT_N < 137.2345 ;
你在MAX(LAT_N)外面额外加了一个左括号,打破了CAST(表达式 AS 数据类型)的标准结构,数据库无法识别AS的正确位置,因此抛出语法错误。
修正后的CAST语句
去掉多余的括号,遵循CAST(目标表达式 AS 指定数据类型)的语法即可正常执行:
SELECT CAST(MAX(LAT_N) AS DECIMAL(10,4)) FROM STATION WHERE LAT_N < 137.2345 ;
补充说明
CONVERT函数的语法是CONVERT(数据类型, 目标表达式),你的CONVERT语句符合这个结构,所以能正常运行。CAST和CONVERT都可以实现类型转换,只是参数顺序不同,使用时注意区分两者的语法格式即可。
内容的提问来源于stack exchange,提问作者Shachee
相关产品推荐
相关产品推荐

