【问题标题】:Regular expressions postgresql正则表达式 postgresql
【发布时间】:2022-11-12 06:13:57
【问题描述】:

我需要你的帮助,我是 postgresQL 的新用户。

我只有第一列,需要得到第二列

像这样-->

Column A Column B
URVKK/GPA/nGPA/...GPA. URVKK_GPA_GPA_GPA
URVKK2935874GPA URVKK_GPA
URVKK2935874ControlGPA5732 URVKK_GPA

除了case,我不知道,也许你能帮我一个想法,谢谢

我将非常感谢您的帮助

【问题讨论】:

  • 你真的应该从基本的 SQL 教程开始,而不是期望人们在这个站点上教你非常基础的知识。
  • @treuss 我知道一个基本的 sql,我不知道如何最好地使用 qlik 意义上的 postgres 自动执行查询

标签: sql postgresql qliksense qregularexpression


【解决方案1】:

您是否尝试使用 SQL 或 Qlik 脚本来实现此目的?另外,你会如何表达你想要做的事情?所有 [Column A] 值是否都以“URVKK”开头,还是您需要以更具体的方式进行模式匹配?在那个起始模式之后,你只是想用下划线替换任何不是“GPA”的东西吗?

如果您尝试使用 Qlik 脚本实现此目的,您可以根据我在此处的少量信息使用此表达式:
if(left([Column A], 5) = 'URVKK', 'URVKK' & Repeat('_GPA', SubStringCount([Column A], 'GPA')))

如果您要使用的是 SQL,并且您使用的是 PostgreSQL 15+,您可以执行以下操作:
CASE WHEN left("Column A", 5) = 'URVKK' THEN 'URVKK' || repeat('_GPA', regexp_count("Column A", '(GPA)')) ELSE "Column A" END

如果您尝试使用 SQL 并希望在这种情况下专门使用 Regex,那将变得更加困难,因为使用 Regex 执行诸如“匹配所有子字符串字符,除非子字符串匹配 'GPA' 之类的事情并不容易。 "

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    相关资源
    最近更新 更多