如何从一串字母中,只提取大写字母。如:FirstClass,如何只留FC

如何从一串字母中,只提取大写字母。如:First Class,如何只留FC

FineBI 夏进--邹翠荣 发布于 2024-10-3 12:38
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
华莉星宸Lv7专家互助
发布于2024-10-3 13:41

建议在数据库中处理

oracle参考

-----------------------

with aa as

 (select 'AsdfsCddfd' as kk  from dual

  union all

  select 'aa哈哈FsdfsCddfd' as kk  from dual)

  

SELECT REGEXP_REPLACE(kk, '[^A-Z]', '') AS uppercase_letters FROM aa;

image.png

最佳回答
0
CD20160914Lv8专家互助
发布于2024-10-3 13:32

在BI中不好处理,直接在sql的数据源中处理,在BI数据源中加上这一列吧,比如在oracel中类似这样

  with your_table  as(

SELECT 'A11s4t7DE64srtoi' AS your_column

FROM dual )

select LISTAGG(t.uppercase_letter,'') WITHIN GROUP (ORDER BY uppercase_letter) as 拼接列  from (

SELECT REGEXP_SUBSTR(your_column, '[A-Z]', 1, LEVEL) AS uppercase_letter

FROM your_table

CONNECT BY REGEXP_SUBSTR(your_column, '[A-Z]', 1, LEVEL) IS NOT NULL

  AND PRIOR your_column = your_column

  AND PRIOR SYS_GUID() IS NOT NULL) t

image.png

最佳回答
0
ALICELv5初级互助
发布于2024-10-3 16:03(编辑于 2024-10-3 16:04)

如果数据源都是类似于First Class这样的格式,可以先用拆分行列将First Class拆分成2列,分别为列1、列2,然后用CONCATENATE(LEFT(列1 ,1),LEFT(列2,1)......)拼接即可

  • 4关注人数
  • 171浏览人数
  • 最后回答于:2024-10-3 16:04
    请选择关闭问题的原因
    确定 取消
    返回顶部