# Explicit Partition Query - Example

```10
tidb> SELECT * FROM users ~!@PARTITION(p2)@!~;
+--------+-----------+----------+-----------+------------+
| sub_id | firstname | lastname | journalid |   joined   |
+--------+-----------+----------+-----------+------------+
|   3    |   Percy   |   Biden  |   6001    | 2014-10-17 |
+--------+-----------+----------+-----------+------------+
1 row in set, 1 warning (0.00 sec)

tidb> SELECT * FROM users ~!@PARTITION(p2, p3)@!~;
+--------+-----------+----------+-----------+------------+
| sub_id | firstname | lastname | journalid |   joined   |
+--------+-----------+----------+-----------+------------+
|   3    |   Percy   |  Biden   |   6001    | 2014-10-17 |
|   4    |   Cecil   | Hathaway |   7006    | 2025-05-11 |
+--------+-----------+----------+-----------+------------+
2 rows in set, 1 warning (0.00 sec)
```

------------------------------------------------------------------------------
Example:

```
tidb> CREATE TABLE users (
 -> sub_id INT NOT NULL,
 -> firstname VARCHAR(25) NOT NULL,
 -> lastname VARCHAR(25) NOT NULL,
 -> journalid INT NOT NULL,
 -> joined DATE NOT NULL
 -> )
 -> PARTITION BY RANGE( YEAR(joined) ) (
 -> PARTITION p0 VALUES LESS THAN (2000),
 -> PARTITION p1 VALUES LESS THAN (2010),
 -> PARTITION p2 VALUES LESS THAN (2020),
 -> PARTITION p3 VALUES LESS THAN (2030)
 -> );
Query OK, 0 rows affected (0.54 sec)

tidb> INSERT INTO users VALUES(1, 'Jack','Smith', 5001, '1998-12-10 14:10:22');
Query OK, 1 row affected (0.02 sec)

tidb> INSERT INTO users VALUES(2, 'William','Jhons', 6002, '2003-11-05 09:11:12');
Query OK, 1 row affected (0.00 sec)

tidb> INSERT INTO users VALUES(3, 'Percy','Biden', 6001, '2014-10-17 16:16:10');
Query OK, 1 row affected (0.01 sec)

tidb> INSERT INTO users VALUES(4, 'Cecil','Hathaway', 7006, '2025-05-11 08:23:05');
Query OK, 1 row affected (0.01 sec)

tidb> SELECT * FROM users PARTITION(p2);
+--------+-----------+----------+-----------+------------+
| sub_id | firstname | lastname | journalid | joined     |
+--------+-----------+----------+-----------+------------+
| 3      | Percy     | Biden    | 6001      | 2014-10-17 |
+--------+-----------+----------+-----------+------------+
1 row in set, 1 warning (0.00 sec)

tidb> SELECT * FROM users PARTITION(p2, p3);
+--------+-----------+----------+-----------+------------+
| sub_id | firstname | lastname | journalid | joined     |
+--------+-----------+----------+-----------+------------+
| 3      | Percy     | Biden    | 6001      | 2014-10-17 |
| 4      | Cecil     | Hathaway | 7006      | 2025-05-11 |
+--------+-----------+----------+-----------+------------+
2 rows in set, 1 warning (0.00 sec)

SELECT in INSERT ... SELECT can also use partition selection.
```

Please note that the `1 warning` displayed in the example output indicates the absence of table statistics. We will cover table statistics in subsequent chapters.

More detail: `https://docs.pingcap.com/tidb/stable/partitioned-table#partition-selection`