---
title: "MOVE"
id: sql-move
pg_version: "20devel"
---
# MOVE — position a cursor
## Synopsis
```
MOVE [ direction ] [ FROM | IN ] cursor_name
where direction can be one of:
NEXT
PRIOR
FIRST
LAST
ABSOLUTE count
RELATIVE count
count
ALL
FORWARD
FORWARD count
FORWARD ALL
BACKWARD
BACKWARD count
BACKWARD ALL
```
## Description
`MOVE` repositions a cursor without retrieving any data. `MOVE` works exactly like the `FETCH` command, except it only positions the cursor and does not return rows.
The parameters for the `MOVE` command are identical to those of the `FETCH` command; refer to [FETCH](sql-fetch.md) for details on syntax and usage.
## Outputs
On successful completion, a `MOVE` command returns a command tag of the form
MOVE `count`
The `count` is the number of rows that a `FETCH` command with the same parameters would have returned (possibly zero).
## Examples
BEGIN WORK;
DECLARE liahona CURSOR FOR SELECT * FROM films;
-- Skip the first 5 rows:
MOVE FORWARD 5 IN liahona;
MOVE 5
-- Fetch the 6th row from the cursor liahona:
FETCH 1 FROM liahona;
code | title | did | date_prod | kind | len
-------+--------+-----+------------+--------+-------
P_303 | 48 Hrs | 103 | 1982-10-22 | Action | 01:37
(1 row)
-- Close the cursor liahona and end the transaction:
CLOSE liahona;
COMMIT WORK;
## Compatibility
There is no `MOVE` statement in the SQL standard.
## See Also
[CLOSE](sql-close.md), [DECLARE](sql-declare.md), [FETCH](sql-fetch.md)