PG中:select * from student where id=1 截取 from 和where中间的字符串
时间: 2024-05-15 19:09:36 浏览: 6
在PG中,可以使用子字符串函数`substring`来截取字符串。对于你提供的SQL语句`select * from student where id=1`,你可以使用以下方式截取`from`和`where`之间的字符串:
```sql
SELECT substring('select * from student where id=1' FROM 'from (.*) where') AS result;
```
这将返回结果为`student`,即`from`和`where`之间的字符串。
相关问题
test=# SELECT * FROM pg_catalog.pg_backup_history; ERROR: relation "pg_catalog.pg_backup_history" does not exist LINE 1: SELECT * FROM pg_catalog.pg_backup_history;
如果您执行 `SELECT * FROM pg_catalog.pg_backup_history;` 命令时遇到 "relation does not exist" 的错误,可能是因为 Kingbase 数据库并没有这个表。
在 Kingbase 中,备份历史记录是存储在 `pg_stat_backup` 系统视图中的。您可以使用以下命令来查看备份历史记录:
```
SELECT * FROM pg_catalog.pg_stat_backup;
```
这将显示所有备份的详细信息,包括备份ID、备份开始和结束时间、备份方式等等。如果您需要更详细的备份信息,可以查看Kingbase的官方文档或者联系 Kingbase 的技术支持人员获取帮助。
test=# SELECT * FROM pg_dump_catalog; 错误: 关系 "pg_dump_catalog" 不存在 第1行SELECT * FROM pg_dump_catalog;
如果在 Kingbase 数据库中,使用 `SELECT * FROM pg_dump_catalog;` 命令查询备份信息,提示表不存在,可能是因为该表没有被创建,或者是权限不足。
你可以使用以下命令来检查是否存在名为 pg_dump_catalog 的表:
```
SELECT tablename FROM pg_tables WHERE tablename = 'pg_dump_catalog';
```
如果该命令返回结果为空,则说明该表不存在。如果该表不存在,你需要先创建该表,再查询备份信息。
创建 pg_dump_catalog 表的命令如下:
```
CREATE TABLE pg_dump_catalog (dump_id serial primary key, dump_date timestamp default now(), dump_file text);
```
创建表后,你可以使用 pg_dump 工具或其他备份工具进行备份,并将备份信息插入到 pg_dump_catalog 表中,例如:
```
INSERT INTO pg_dump_catalog (dump_file) VALUES ('/backup/2022-01-01.dump');
```
之后,你就可以通过以下命令来查询备份信息:
```
SELECT * FROM pg_dump_catalog;
```
如果你仍然无法查看备份信息,可能是因为你没有足够的权限来查询该表。你可以检查当前用户的权限,或者使用超级用户登录数据库来查询备份信息。