我在第6列之后有一个数据为零的列
我想删除数据中第6个管道后的前导零。
如果有任何办法,请告诉我。我尝试将substr
与Trim
一起使用但不起作用。
答案 0 :(得分:0)
假设您的列名为COL
,则以下内容应起作用:
CONCAT(SUBSTR(1,INSTR(COL,'|', 1,5)), LTRIM(SUBSTR(INSTR(COL,'|', 1,5)+1)),'0'))
答案 1 :(得分:0)
根据您当前的数据假设您只需用|00
替换|
的每一个匹配项,您就可以使用REPLACE
函数来实现。
SELECT 'TMB|MLE020828585|74384911WA3S|="''07300058"|74384911|0013' AS Current_String,
replace('TMB|MLE020828585|74384911WA3S|="''07300058"|74384911|0013', '|00', '|') AS result_String
您可以将上面的硬编码值替换为列名。
以上查询生成如下结果。
Current_String | result_String
------------------------------------------------------------------------------------------------------------------------
TMB|MLE020828585|74384911WA3S|="'07300058"|74384911|0013 | TMB|MLE020828585|74384911WA3S|="'07300058"|74384911|13
希望这会有所帮助。
答案 2 :(得分:0)
Oleg在使用INSTR()方面是正确的,我就是这样做的。但他错过了一些论点。另外,我无法让ltrim工作,所以我将它转换为int。我使用以下方法测试并更新了我的表格数据:
更新mytable SET mycolumn = Substr(mycolumn,1,Instr(mycolumn,' |',1,5)) || CAST(Substr(mycolumn,Instr(mycolumn,' |',1,5)+ 1)AS INT)