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
谢谢
发布于 2014-05-19 17:59:48
试试这个:
select substring(REPLACE(concat('-', Column), '-0', '-'), 2)这一次,有一个SQL Fiddle显示它可以工作。
发布于 2014-05-19 18:25:13
这个怎么样?
select concat(trim(leading 0 from substr(col1,2,2)) ,
trim(leading 0 from substr(col1,5,2)) ,
substr(col1,8,1))
from t;这是我正在使用的小提琴
结果:
1-1-1
3-4-0 发布于 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
https://stackoverflow.com/questions/23744061
复制相似问题