DB2 TRIM 000000 到 0
DB2 TRIM 000000 to 0
我看过:
- IBM 信息中心。
我有一个长度为六的列和一个字符列。典型值为 AA01AA。我需要从值中取出中间的 2 个字符并转换为数字。
我正在使用以下代码执行此操作:TRIM(L '0' FROM(SUBSTRING(Myfield, 3, 2)))
。在上面的示例值中,我得到了 1。当值为 000000 时,问题就出现了。trim returns ''。我需要它 return 0.
我试过 REPLACE(TRIM(L '0' FROM(SUBSTRING(Myfield, 3, 2))),'' ,'0')
但这只是给了我一个空白字符串。我也试过 TRANSLATE(TRIM(L '0' FROM(SUBSTRING(Myfield, 3, 2))), '0', '')
但这给出了关于参数 03 是无效数据类型、长度等的错误
如有任何帮助,我将不胜感激。
像这样应该可以解决问题:
integer(substr(myField,3,2)))
SUBSTR
提取两个字符,INTEGER
将其作为输入并将其转换为数字。 TRIM
完全没有必要。
values(integer(substr('000000',3,2)))
1
-----------
0
1 record(s) selected.
我看过:
- IBM 信息中心。
我有一个长度为六的列和一个字符列。典型值为 AA01AA。我需要从值中取出中间的 2 个字符并转换为数字。
我正在使用以下代码执行此操作:TRIM(L '0' FROM(SUBSTRING(Myfield, 3, 2)))
。在上面的示例值中,我得到了 1。当值为 000000 时,问题就出现了。trim returns ''。我需要它 return 0.
我试过 REPLACE(TRIM(L '0' FROM(SUBSTRING(Myfield, 3, 2))),'' ,'0')
但这只是给了我一个空白字符串。我也试过 TRANSLATE(TRIM(L '0' FROM(SUBSTRING(Myfield, 3, 2))), '0', '')
但这给出了关于参数 03 是无效数据类型、长度等的错误
如有任何帮助,我将不胜感激。
像这样应该可以解决问题:
integer(substr(myField,3,2)))
SUBSTR
提取两个字符,INTEGER
将其作为输入并将其转换为数字。 TRIM
完全没有必要。
values(integer(substr('000000',3,2)))
1
-----------
0
1 record(s) selected.