使用 Postgres 11,如何在同一个查询中执行一系列字符串函数,其中后续字符串函数调用针对先前执行的字符串函数的结果执行?
我的源表labels
如下所示:
描述 |
---|
12345_橙色 |
23456B_黄色 |
34567C_蓝色 |
我想创建一个可以返回这个的视图:
描述 | ID | 速度 | 姓名 |
---|---|---|---|
12345_橙色 | 12345 | 橙 | |
23456B_黄色 | 23456 | 乙 | 黄色 |
34567C_蓝色 | 34567 | C | 蓝色的 |
这里一个棘手的部分是列desc
不一致。有时该值rate
存在,有时不存在,如第一行所示。解决这个问题的最简单方法似乎是使用一系列两个函数,首先我提取值id
并将其存储在列中。然后从该列中提取 的值rate
(如果存在)。
这是我正在尝试的查询:
SELECT
labels.descr,
SPLIT_PART(labels.descr, '_', 1) as id
, REGEXP_MATCHES(id, '[A-Za-z]')
FROM
labels
;
当我执行时,我收到该列id
不存在的错误。
有人可以帮助我了解如何解决这个问题吗?我希望仅使用视图来解决此问题,以简化将来针对此结果集的查询。
此外,我真的很感激能深入了解为什么上述方法不起作用。谢谢!