我有一个表,其中包含一个列,该列具有存储为字符串的字母数字值。我在该列中有多个值,例如F4737
,00Y778
,PP0098
,XXYYYZ
等。
我想提取以一系列F开头的值,并且该行必须具有数值。字母数字列是具有唯一值的唯一列,但表中其余列包含重复值。
此外,一旦提取了这些值,我想从重复行中提取max value,例如:
- 假设我有
F4737
和F4700
作为唯一的字母数字行,那么必须从中提取F4737
。
我写了一个这样的查询,但数值并没有从这个查询中提取出来:
select max(Alplanumeric)
from Customers
where Alplanumeric '%[F0-9]%
字符串
或者是
select max(Alplanumeric)
from Customers
where Alplanumeric like '%[0-9]%'
and Alplanumeric like 'F%'**
型
我运行了上面的查询,但如果我从上面的查询中删除数字部分,我只会得到F系列。如何提取F起始序列以及该行中包含的数值?
1条答案
按热度按时间z31licg01#
在一个肢体上,你可能会寻找这样的查询:
字符串
WHERE
条件是一个正则表达式匹配,表达式被锚定到开始,所以它可以使用索引。理想情况下:型
这将返回以'F'开头并后跟一位或多位数字的行中
alphanumeric
中具有最高(提取)数值的一行。关于索引:
关于模式匹配:
理想情况下,您应该将前导文本和后续数值存储在 * 单独的 * 列中,以使其更有效。你不一定需要更多的表一样已经建议。