首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从电话号码中移除尾随零

从电话号码中移除尾随零
EN

Stack Overflow用户
提问于 2021-12-16 08:13:35
回答 4查看 221关注 0票数 0

我有一个旧的电话桌,它有一个长度为15的PhonoNo列。现在我正在做一个电话号码清理的任务,在10位数后的0。

代码语言:javascript
运行
复制
+----------------+---------------+
|    PhoneNo     | Desire output |
+----------------+---------------+
|198765432100000 |    1987654321 |
|   198765432100 |    1987654321 |
|     1987653210 |    1987653210 |
|    19876543210 |    1987654321 |
|198765432100100 | 1987654321001 |
|       19876543 |      19876543 |
|      009876543 |     009876543 |
+----------------+---------------+

我正在使用下面的代码,但它对我不起作用。

代码语言:javascript
运行
复制
SELECT PhoneNo, REPLACE(LTRIM(REPLACE(PhoneNo,'0',' ')),' ','0') as NewPhoneNo 
FROM tblPhone WITH(NOLOCK) 

我正在寻找SQL Server中的解决方案,以便在不创建任何函数的情况下删除尾随的0。

EN

Stack Overflow用户

回答已采纳

发布于 2021-12-16 09:07:12

可以使用CASE表达式返回小于或等于10个字符的值,然后使用REPLACERTRIM移除尾随0:

代码语言:javascript
运行
复制
SELECT CASE WHEN LEN(PhoneNo) <= 10 THEN PhoneNo
            ELSE REPLACE(RTRIM(REPLACE(PhoneNo,'0',' ')),' ','0')
       END
FROM (VALUES ('198765432100000'),
             ('198765432100'),
             ('1987653210'),
             ('19876543210'),
             ('198765432100100'),
             ('19876543'),
             ('009876543'))V(PhoneNo);
票数 2
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70375763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档