sql—如何选择字符串中的第一个数字

bzzcjhmw  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(672)

基本上,我有一个大的地址列表,有时可以以“数字”、“地址的其余部分”或“公寓的数字”、“地址的其余部分”开头,有时甚至可以以“数字”a、“地址的其余部分”或“数字”a开头。
如何选择第一个数字,如果这个数字有一个字符,那么也包括这个字符?
示例:
如果地址是 FLAT 3, thanos house, nw1 6fs 然后我需要选择 3 如果地址是 FLAT 3B, thanos house, nw1 6fs 然后我需要选择 3B 如果地址是 324, thanos house, nw1 6fs 然后我需要选择 324 如果地址是 APARTMENT 324, thanos house, nw1 6fs 然后我需要选择 324

ar7v8xwq

ar7v8xwq1#

这个 substring() 你问什么就说什么:

substring(string, '\m\d+\D?*\M')

正则表达式只返回第一个匹配项,或者 NULL 如果没有。 \m ... 一个词的开头 \d+ ... 一个或多个数字 \D? ... 零或一个非数字 \M ... 字尾
演示:

SELECT string, substring(string, '\d+\D?\d*\M')
FROM  (
   VALUES
  ('FLAT 3, thanos house, nw1 6fs')
, ('FLAT 3B, thanos house, nw1 6fs')
, ('324, thanos house, nw1 6fs')
, ('APARTMENT 324, thanos house, nw1 6fs')
   ) tbl(string);

db<>在这里摆弄

相关问题