我有一个字符串(德语电话号码),包括字符串中的前缀,没有像这样的任何分隔:phone = 030123456
。
由于前缀没有唯一的长度,因此必须根据包含所有前缀号码的另一个表进行检查。
如何将字符串分隔为前缀和数字?
prefix = 030, number = 123456
答案 0 :(得分: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
答案 1 :(得分:1)
你可以使用这样的查询:
SELECT
prefixes.prefix,
SUBSTRING(phones.phone, LENGTH(prefixes.prefix)+1) number
FROM
phones INNER JOIN prefixes
ON phones.phone LIKE CONCAT(prefixes.prefix, '%')
请参阅小提琴here。