Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在DB2中修剪列_Db2 - Fatal编程技术网

如何在DB2中修剪列

如何在DB2中修剪列,db2,Db2,如何在DB2中为下面给定的输入修剪列 00652835065718 00052835065718 我需要使用SQL从值中删除所有前导零,以便最终输出为: 652835065718 52835065718 该列为VARCHAR 我尝试了下面的查询 select TRIM(L '0' FROM ID) from ITM where ID = '0652835065718' 但是在我的DB2版本9.1.5中,仅仅使用trim函数是不起作用的 select TRIM( LEADING '0' FROM

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

00652835065718

00052835065718

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

652835065718
52835065718

该列为VARCHAR

我尝试了下面的查询

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

但是在我的DB2版本
9.1.5

中,仅仅使用trim函数是不起作用的

select TRIM( LEADING '0' FROM `field` ) as field FROM table  

编辑:删除链接

DB2将自动从整数中删除前导0,因此只需使用CAST,如下所示:

SELECT CAST(ID AS INTEGER) 
这是一个测试

SELECT CAST('0012345' AS INTEGER) FROM SYSIBM.SYSDUMMY1

1          
-----------
  12345

答案取决于您的DB2平台

如果您使用的是DB2forLinux/Unix/Windows,那么答案与@teunLoonen所说的类似,我猜是背景信号把事情搞砸了。DB2上函数的正确语法为:

SELECT TRIM(LEADING '0' FROM ID)
FROM ITM
如果您在大型机DB2上,则可以使用标量函数:

SELECT LTRIM(ID, '0')
FROM ITM

我已经试过了,但是我的db2版本不支持这个查询链接是针对MySQL的而不是db2的。你可以使用cast函数来表示数字,还是该列包含的数字可能超过[0-9]个。是否可以在where条件下使用cast,如
cast(ID为整数)=12345
。我已经试过了,但是不起作用。你可以在WHERE子句中使用CAST。“不起作用”怎么说?目前,这只是一个
SELECT
语句,因此数据库中的值仍然相同。您的查询似乎也有输入错误-您只有一个前导的
'0'
(与示例数据中的两个相反)。感谢您专门为这两种风格的DB2提供答案!