当前位置: 首页 > 面试题库 >

从列中提取字母和数字部分

柴凌
2023-03-14
问题内容

我有一个表tab1,该表的列col1具有复合的alpha-then-numeric值,如下所示:

abc123
xy45
def6
z9

我需要在查询中将值提取为单独的列,而数字部分在整数数据类型的列中。

如果两个值的开始位置和结束位置一致,则可以使用来完成工作substring(),因为您可以看到数字部分的开始位置有所不同。

是否有一种优雅的方法可以解决此问题,还是必须通过使用正则表达式匹配来分隔个案或在大量的个案语句中汇总使用每个可能的起点的一系列并集来完成?


问题答案:

是的:

SELECT
  @col:=col1 AS col, 
  @num:=REVERSE(CAST(REVERSE(@col) AS UNSIGNED)) AS num,
  SUBSTRING_INDEX(@col, @num, 1) AS word
FROM
  tab1

-仅在您的列中包含字母然后是数字(如您所述)时才有效。这就是为什么REVERSE()需要加倍(否则CAST()将无效)的原因。检查这个演示。



 类似资料:
  • 问题内容: 我只需要从中提取数值。如何从Android中的字母数字字符串中提取数字? 问题答案: 更新:

  • 问题内容: 我想从包含数字和字母的字符串中提取数字: 我想在这里获取号码或任何其他号码。 问题答案:

  • 问题内容: 我在JavaScript中有一个字符串,例如“#box2”,我只想从中获得“ 2”。 尝试过: 它仍然在警报中返回#box2,我该如何使其正常工作? 它需要容纳末尾附加的任何长度的数字。 问题答案: 对于此特定示例, 在一般情况下: 由于这个答案由于某种原因而受到欢迎,因此有一个好处:正则表达式生成器。

  • 问题内容: 我正在和熊猫打架,现在我正在失去。我有与此类似的源表: 我想从列“ First”中的值的第一位开始向该数据帧添加新列:a)从列“ First”中的字符串更改为数字b)从新创建的字符串中提取第一个字符c)来自b的结果另存为新的数据框中的列 我不知道如何将其应用于熊猫数据框对象。我将非常感谢您的帮助。 问题答案: 铸山坳来,你可以进行矢量化切片呼吁: 如果需要,可以再次调用列

  • 我有一个pyspark dataframe DF。它有2列,如下面所示的示例输入。我想创建一个新的输出数据表,其中包含一个新列'COL3',该列只包含COL2中字符串的字母数字值。 输出

  • 问题内容: 我有一个字符串,我想提取字符串中的(唯一)数字序列。 示例:helloThisIsA1234Sample。我想要1234 假设数字序列在字符串中只会出现一次,但不会出现在同一位置。 (对于那些会问的人,我有一个服务器名称,需要在其中提取一个特定的数字) 我想使用Apache commomns中的StringUtils类。 谢谢! 问题答案: 使用此代码号仅包含所需的输出。