首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL以删除MYSQL字符串中的Zero

SQL以删除MYSQL字符串中的Zero
EN

Stack Overflow用户
提问于 2014-05-19 17:48:05
回答 4查看 2.6K关注 0票数 0

SQL以删除特定列的字符串中的Zero。我试过使用替换,但它正在完成删除所有0的操作。

示例:“(替换(列,'0','')”但这并没有解决我的问题。它删除了所有的零,这不是要求。

有人能帮我写SQL语句,从字符串中只删除1 0吗?

00-01-09

07-00-02

03-04-00

03-04-06

结果

0-1-9

7-0-2

3-4-0

3-4-6

谢谢

EN

回答 4

Stack Overflow用户

发布于 2014-05-19 17:59:48

试试这个:

代码语言:javascript
复制
select substring(REPLACE(concat('-', Column), '-0', '-'), 2)

这一次,有一个SQL Fiddle显示它可以工作。

票数 2
EN

Stack Overflow用户

发布于 2014-05-19 18:25:13

这个怎么样?

代码语言:javascript
复制
select concat(trim(leading 0 from substr(col1,2,2)) , 
              trim(leading 0 from substr(col1,5,2)) , 
              substr(col1,8,1))
from t;

这是我正在使用的小提琴

结果:

代码语言:javascript
复制
1-1-1 
3-4-0 
票数 1
EN

Stack Overflow用户

发布于 2014-05-19 18:03:03

这并不是很优雅,但如果它只是“一次”的话,应该会奏效:

步骤1:

创建一个包含六个字段的临时表。原始数字为3,清洁数字为3。

步骤2:解析出原始值并将其插入临时表的前3个字段中:

插入temp_table(first_number,second_number,third_number)选择左(字段,2)作为first_number,子字符串(字段,3,2)选择second_number,子字符串(字段(6,2)从original_table选择third_number

第2步:使用以下语句“清除”每个数字:

在左(first_number,1)=0的地方更新temp_table set temp_table;

更新temp_table set first_number_cleaned=first_number (左(first_number,1)<>0)

对每个数字重复

步骤4:更新原始表或创建新表,但是您需要加入它:

选择concat(first_number_cleaned,'-',second_number_cleaned,'-',third_number_cleaned)作为来自temp_table的cleaned_string

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23744061

复制
相关文章

相似问题

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