如何修剪DB2中的列

时间:2014-04-23 10:35:10

标签: db2

如何在DB2中修剪以下给定输入的列

00652835065718
00052835065718

我需要使用SQL从值中删除所有前导零,以便最终输出为:

652835065718
52835065718

列是VARCHAR

我尝试了以下查询

select TRIM(L '0' FROM ID) from ITM where ID = '0652835065718'

但它在我的DB2版本9.1.5

中无效

3 个答案:

答案 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  

编辑:已删除链接