从 SQL 中的电话号码字段中删除两个加号

问题描述 投票:0回答:1

我想从电话号码字段中删除两个加号 (+),只添加一个加号。

例如:电话号码可以采用以下任何格式:

(+) (+911) 24234324324324
++091787534 5303
(++91) 9711931220`

所需输出:

(+911) 24234324324324
+091787534 5303
(+91) 9711931220`

下面是我正在使用的查询

**replace((TRIM(LEADING '0' FROM (REGEXP_REPLACE(channel_value, '[\]\\[!@#$%.&*~^_{}:;<>/\\|()+-]', '')))),' ' ,'')**

等待您的建议。

谢谢你。

sql mysql
1个回答
0
投票

要在 SQL 中实现所需的输出,您可以结合使用字符串操作函数和正则表达式。以下是修改查询的方法:

SELECT 
    CASE 
        -- If phone number starts with two '+' signs, remove one
        WHEN channel_value LIKE '++%' THEN
            CONCAT('+', SUBSTRING(channel_value, 3))
        -- If phone number starts with a single '+' sign, keep as is
        WHEN channel_value LIKE '+%' THEN
            channel_value
        -- If phone number doesn't start with a '+', add one at the beginning
        ELSE
            CONCAT('+', channel_value)
    END AS normalized_phone_number
FROM
    your_table_name;

此查询检查 channel_value 列中电话号码的格式。如果它以两个“+”号开头,则会删除一个。如果它以单个“+”号开头,则保持原样。如果它不以“+”开头,则会在开头添加一个。这样,您就可以直接在 SQL 中实现所需的输出格式。

© www.soinside.com 2019 - 2024. All rights reserved.