postgresql - 使用 PostgreSQL 对多行进行子串化
问题描述
我有一个文本列具有这种类型的值
---
cart_id: 23332251
id: 1824
push:
key:
last_checked_in_at: 2019-03-04 10:39:53.946659000 Z
other_field: hello
我想有一列只有last_checked_in_at
并将值提取为2019-03-04 10:39:53.946659000
我试过
SELECT substring(object FROM '.*last_checked_in_at: (.*) Z') AS last_checkin_at, *
FROM versions;
但是我得到了现场的乞求,但它从未停止并采取下面的其余行。
我试过了substring(object FROM '.*last_checked_in_at: (.*) Z$')
,但我得到了 NULL。我在 PostgreSQL 10 上。
解决方案
给定
CREATE TABLE test (
object text
);
INSERT INTO test VALUES
($$---
cart_id: 23332251
id: 1824
push:
key:
last_checked_in_at: 2019-03-04 10:39:53.946659000 Z
other_field: hello$$);
SQL
SELECT substring(object FROM '.*last_checked_in_at: (.*) Z') AS last_checkin_at, * FROM test;
产量
+-------------------------------+-----------------------------------------------------+
| last_checkin_at | object |
+-------------------------------+-----------------------------------------------------+
| 2019-03-04 10:39:53.946659000 | --- +|
| | cart_id: 23332251 +|
| | id: 1824 +|
| | push: +|
| | key: +|
| | last_checked_in_at: 2019-03-04 10:39:53.946659000 Z+|
| | other_field: hello |
+-------------------------------+-----------------------------------------------------+
所以substring(object FROM '.*last_checked_in_at: (.*) Z')
可以按需要工作。如果您不想要第二列,请使用
SELECT substring(object FROM '.*last_checked_in_at: (.*) Z') AS last_checkin_at FROM test;
推荐阅读
- laravel - 在 Laravel 的队列中保持 PHPMailler 连接处于活动状态
- javascript - React Promise.all 挑战
- sqlite - 根据两个表中的通用条件进行查询并根据出现次数进行排序
- python - 报纸(python)获取所有cnn新闻列表
- tfsbuild - TFS 2013:自定义 Git 构建模板错误:找不到自定义模板
- javascript - .Net Core 2 在视图中将 C# 变量转换为 Javascript
- ios - WatchKit - 从 iPhone 访问数据
- python - 在树莓派上使用 Opencv 显示视频流时出错
- javascript - 使用子数组在 php(或 javascript)中读取 Json 文件
- c++ - 为什么静态成员需要在类外初始化