如何在DB2中修剪以下给定输入的列
00652835065718
00052835065718
我需要使用SQL从值中删除所有前导零,以便最终输出为:
652835065718
52835065718
列是VARCHAR
我尝试了以下查询
select TRIM(L '0' FROM ID) from ITM where ID = '0652835065718'
但它在我的DB2版本9.1.5
答案 0 :(得分:1)
DB2将自动从整数中删除前导0,所以只需使用CAST,如下所示:
SELECT CAST(ID AS INTEGER)
这是一个测试。
SELECT CAST('0012345' AS INTEGER) FROM SYSIBM.SYSDUMMY1
1
-----------
12345
答案 1 :(得分:1)
答案取决于您的DB2平台
如果您使用的是DB2 for Linux / Unix / Windows,那么答案类似于@Teun Loonen所说的,我猜这是反复搞乱的事情。 DB2上TRIM
函数的正确语法是:
SELECT TRIM(LEADING '0' FROM ID)
FROM ITM
如果您使用的是Mainframe DB2,则可以使用LTRIM
标量函数:
SELECT LTRIM(ID, '0')
FROM ITM
答案 2 :(得分:-1)
只需使用修剪功能
select TRIM( LEADING '0' FROM `field` ) as field FROM table
编辑:已删除链接