我想从电话号码字段中删除两个加号 (+),只添加一个加号。
例如:电话号码可以采用以下任何格式:
(+) (+911) 24234324324324
++091787534 5303
(++91) 9711931220`
所需输出:
(+911) 24234324324324
+091787534 5303
(+91) 9711931220`
下面是我正在使用的查询
**replace((TRIM(LEADING '0' FROM (REGEXP_REPLACE(channel_value, '[\]\\[!@#$%.&*~^_{}:;<>/\\|()+-]', '')))),' ' ,'')**
等待您的建议。
谢谢你。
要在 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 中实现所需的输出格式。