postgresql Concat和修剪字符串[已关闭]

xe55xuns  于 2023-03-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(128)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。

4天前关闭。
Improve this question
我有一张table:
| 目标数|指标名称|
| --------------|--------------|
| 零零三|mcf:assistedConversions|
| 012|mcf:firstInteractionValue|
| (not设置)|mcf:firstInteractionValue|
我想得到这个:
| 指标_键|
| --------------|
| goal3:assistedConversions|
| goal12:firstInteractionValue|
我需要什么:

  • 跳过带有goal_number =的行(未设置)(好吧,使用简单的WHERE子句很容易)
  • goal_number中提取数字(格式为表示整数的3位零填充字符串。例如,转换目标数字3表示为“003”),并将mcf之后的metric_name列中的值添加到此值。

我写了一个简单的查询:

select 
'goal'::text || trim (leading '0' from goal_number) || trim(leading 'mcf' from metric_name)
from table
where goal_number <> '(not set)'

你能建议更好的解决方案(更短更漂亮)吗?

oo7oh9g9

oo7oh9g91#

你可以试试这个更短的查询

SELECT 
      CONCAT('goal', LTRIM(goal_number, '0'), LTRIM(metric_name, 'mcf')) AS result
FROM  <your table>
WHERE goal_number <> '(not set)'

参见here演示

相关问题