DB2 TRIM 000000 到 0

Posted

技术标签:

【中文标题】DB2 TRIM 000000 到 0【英文标题】:DB2 TRIM 000000 to 0 【发布时间】:2016-03-10 07:35:45 【问题描述】:

我看过:

DB2 SQL Query Trim inside trim Trimming Blank Spaces in Char Column in DB2 SQL Trim after final semi colon IBM 信息中心。

我有一个六长列和一个字符列。典型值为 AA01AA。我需要从值中取出中间 2 个字符并转换为数字。

我正在使用以下代码执行此操作:TRIM(L '0' FROM(SUBSTRING(Myfield, 3, 2)))。在上面的示例值中,我给出了 1。当值为 000000 时出现问题。修剪返回 ''。我需要它返回 0。

我试过REPLACE(TRIM(L '0' FROM(SUBSTRING(Myfield, 3, 2))),'' ,'0'),但这只是给了我一个空白字符串。我也尝试过TRANSLATE(TRIM(L '0' FROM(SUBSTRING(Myfield, 3, 2))), '0', ''),但这给出了一个关于参数 03 是无效数据类型、长度等的错误。

我将不胜感激。

【问题讨论】:

【参考方案1】:

这样的事情应该可以解决问题:

integer(substr(myField,3,2)))

SUBSTR 提取这两个字符,INTEGER 将其作为输入并将其转换为数字。 TRIM 根本不需要。

values(integer(substr('000000',3,2)))

1          
-----------
          0

  1 record(s) selected.

【讨论】:

工作就像一个魅力。感谢您的帮助。

以上是关于DB2 TRIM 000000 到 0的主要内容,如果未能解决你的问题,请参考以下文章

在DB2的mod函数具体如何是使用

日期格式:DB2 _ SQL

db2的strip函数怎么用?

如何在 DB2/400 中创建生成的列

如何在 db2 查询中从字符串中获取特定值

H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()