3

我有一个字符串(德国电话号码),包括字符串中的前缀,没有像这样的任何分隔:phone = 030123456.

由于前缀没有唯一长度,因此必须对照另一个包含所有前缀编号的表进行检查。

如何将字符串分成前缀和数字?

prefix = 030, number = 123456
4

2 回答 2

1
select Number, 
       coalesce(Prefix, 'Unrecognized') AS Prefix, 
       substr(Number, length(Prefix)+1) AS LocalPart,
       coalesce(Name, 'Unknown') AS Region
from Phone
left join Prefix on substr(Number, 1, length(Prefix)) = Prefix

样品小提琴在这里

于 2013-06-20T10:32:33.690 回答
1

您可以使用这样的查询:

SELECT
  prefixes.prefix,
  SUBSTRING(phones.phone, LENGTH(prefixes.prefix)+1) number
FROM
  phones INNER JOIN prefixes
  ON phones.phone LIKE CONCAT(prefixes.prefix, '%')

在此处查看小提琴。

于 2013-06-20T10:34:32.180 回答