[执行语句1]: SELECT @i:=@i+1 AS sequence_num, CAST(@i AS SIGNED) AS signed_num FROM classify_code, (SELECT @i:=0) t; 执行失败(语句1) -2007: 第 1 行, 第 8 列[@]附近出现错误: 语法分析出错
时间: 2023-12-10 13:37:49 浏览: 215
这个 SQL 语句有错误。可以尝试改成以下语句:
```
SELECT @rownum:=@rownum+1 AS sequence_num, CAST(@rownum AS SIGNED) AS signed_num
FROM classify_code, (SELECT @rownum:=0) r
```
这样应该可以正确执行,并且生成一个包含序号和有符号整数的结果集。
相关问题
SELECT @rownum:=@rownum+1 AS sequence_num, CAST(@rownum AS SIGNED) AS signed_numFROM classify_code, (SELECT @rownum:=0) r 执行失败(语句1) -2007: 第 1 行, 第 13 列[@]附近出现错误: 语法分析出错
这个 SQL 查询语句存在语法错误,可能是由于 "@" 符号的使用不当。可以尝试修改为以下形式:
```
SELECT @rownum:=@rownum+1 AS sequence_num, CAST(@rownum AS SIGNED) AS signed_num
FROM classify_code, (SELECT @rownum:=0) r;
```
这样修改后,语句应该可以执行成功。
CAST((@i:=@i+1) as SIGNED) 转为达梦数据库写法
在达梦数据库中,可以使用类似如下的语句来实现 CAST((@i:=@i+1) as SIGNED) 的功能:
```
SELECT @i:=@i+1 AS sequence_num, CAST(@i AS SIGNED) AS signed_num FROM 表名, (SELECT @i:=0) t;
```
其中,"@i:=@i+1" 表示将变量 @i 的值加 1,"SELECT @i:=0" 则是将变量 @i 的初始值设为 0。通过将这两个语句结合起来,并使用 SELECT 语句将其作为一个子查询来执行,即可生成一个包含序列号和有符号整数的结果集。
阅读全文