SELECT rownum page, 100 number FROM ( SELECT rownum, 'dummy' FROM dual CONNECT BY level <= 10183 ) WHERE rownum <= ROUND(10183/100,0)*100 报ORA-00923: 未找到要求的 FROM 关键字
时间: 2024-02-02 08:04:27 浏览: 95
这个错误可能是因为你的 SQL 语句缺少了必要的 FROM 关键字。请检查你的 SQL 语句并确保它包含正确的语法和必要的关键字。在你的 SQL 语句中,你使用了子查询语句,但没有在子查询中指定 FROM 关键字。你可以尝试将子查询中的 SELECT 语句用括号括起来,并在括号后面指定 FROM 关键字,如下所示:
```
SELECT rownum page, 100 number
FROM (
SELECT rownum, 'dummy' FROM dual CONNECT BY level <= 10183
)
WHERE rownum <= ROUND(10183/100,0)*100
FROM dual;
```
这应该可以解决你的问题。如果你仍然遇到问题,请提供更多的上下文信息,以便我可以更好地帮助你解决问题。
相关问题
SELECT rownum page,100 number FROM dual round(10183/100,0) 语法错误么
是的,这条 SQL 查询语句存在语法错误。应该将 `round(10183/100,0)` 改为 `ROUND(10183/100,0)`。同时,如果想要正确地执行此查询语句,还需要在 `dual` 表中加入一列数据,可以使用以下语句来添加:
```
SELECT rownum, 'dummy' FROM dual CONNECT BY level <= 10183
```
然后将这两条语句合并,得到正确的查询语句:
```
SELECT rownum page, 100 number FROM (
SELECT rownum, 'dummy' FROM dual CONNECT BY level <= 10183
) WHERE rownum <= ROUND(10183/100,0)*100
```
帮我写一个SQL,表名college_task_homework ,有id(主键),taskId,sort ,更新taskId=1的sort,查出来的值有多个让其从1开始自增
### 回答1:
下面是一个可以实现您所需功能的SQL语句:
```sql
UPDATE college_task_homework
SET sort = (SELECT COUNT(*) + 1 FROM college_task_homework WHERE taskId = 1)
WHERE taskId = 1;
```
这个SQL语句会将`college_task_homework`表中所有`taskId`为1的记录的`sort`字段更新为一个新的值,这个新的值是当前`taskId`为1的记录数加1。这个新的值会从1开始自增,因为我们在查询时使用了`COUNT(*) + 1`。
需要注意的是,这个SQL语句只会更新`taskId`为1的记录,其他记录不会受到影响。如果您想更新所有记录的`sort`字段,可以去掉`WHERE taskId = 1`这个条件。
### 回答2:
您好,以下是一个简单的SQL语句,用于更新表名为"college_task_homework"的"taskId"为1的记录,并将其排序值("sort")从1开始自增:
```sql
UPDATE college_task_homework
SET sort = (SELECT @rownum:=@rownum+1)
WHERE taskId = 1
CROSS JOIN (SELECT @rownum:=0) AS dummy;
```
这个SQL语句使用了一个变量"rownum",通过重复添加1来实现自增的效果。首先,我们通过CROSS JOIN和一个SELECT语句,将变量初始化为0。然后,使用UPDATE语句,将"taskId"为1的记录的"sort"字段设置为变量"rownum+1"的值。这样就能够让从1开始的自增值赋给符合条件的记录。
希望可以帮到您!如有其他问题,请随时提问。
### 回答3:
可以用以下的SQL语句来实现更新taskId=1的sort,并让其从1开始自增:
```sql
UPDATE college_task_homework
SET sort = (SELECT ROW_NUMBER() OVER (ORDER BY id) AS new_sort
FROM college_task_homework
WHERE taskId = 1)
WHERE taskId = 1;
```
上述SQL语句中,使用了子查询(SELECT语句)来计算出新的sort值,并使用ROW_NUMBER()函数在结果中为每一行分配一个自增的序号。在子查询的ORDER BY子句中,选择了id字段作为排序的依据。然后,在主查询中,使用更新语句(UPDATE)将新计算得到的sort值赋给符合条件(taskId=1)的行。
注意,在上述SQL语句中,假设表名为college_task_homework,且表中已经存在id、taskId和sort这三个字段。如果不存在,请先创建一个包含这三个字段的表,并将表名和字段名根据实际情况进行替换。
阅读全文
相关推荐





