db2 数据类型转换

yuyadie 2010-11-23 09:37:18
如何解决decimal转换成varchar,自动补0问题
...全文
395 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
CatNetMouse 2010-12-05
  • 打赏
  • 举报
回复
RTRIM(CHAR(INT(V_VALUE )))||SUBSTR(RTRIM(CHAR(CAST(V_VALUE AS
DECIMAL(18,2)))),posstr(RTRIM(CHAR(CAST(V_VALUE AS DECIMAL(18,2)))),'.')
yuyadie 2010-11-25
  • 打赏
  • 举报
回复
haha 没办法 里面还有四舍五入的需求
WWWWA 2010-11-25
  • 打赏
  • 举报
回复
呵呵,自己解决更好,更复杂的
yuyadie 2010-11-25
  • 打赏
  • 举报
回复
谢谢大家 解决了
case when a.qty>0 then coalesce(replace(ltrim(replace(rtrim(char(decimal(Round(a.qty,1),12,1))),'0',' ')),' ','0'),'')
when a.qty<0 then '-' || coalesce(replace(ltrim(replace(rtrim(substr(char(decimal(Round(a.qty,1),12,1)),2,13)),'0',' ')),' ','0'),'')
else '0.0' end
redspr 2010-11-23
  • 打赏
  • 举报
回复
values replace(trim(replace(CHAR(decimal(21.00,10,3)),'0',' ')),' ','0')
values replace(trim(replace(CHAR(decimal(0.15,10,3)),'0',' ')),'.','0.')

先把0转为空格,trim之后在转回为0,不过负数需要另外处理
wwwwb 2010-11-23
  • 打赏
  • 举报
回复
1
CREATE FUNCTION DB2ADMIN.DECTOCHAR(X DECIMAL(31,2))
RETURNS VARCHAR(32)
LANGUAGE SQL
BEGIN atomic
DECLARE MYX VARCHAR(32);
SET MYX=CHAR(X);
WHILE LEFT(MYX,1)='0' DO
SET MYX=SUBSTR(MYX,2);
END WHILE;
RETURN MYX;
END
调用时的格式:
DECLARE MYDEC DECIMAL(8.2) DEFAULT 5.05;
DECLARE MYCHAR VARCHAR(9) DEFAULT NULL;
SET MYCHAR=DECTOCHAR(MYDEC);
输出的字符串为:5.05
2
select rtrim(char(int(col1)))||right(char(col1),POSSTR(char(col1),'.')) from tablename

如果posstr不认识,就换成locate,版本不同,函数有可能不认识。
yuyadie 2010-11-23
  • 打赏
  • 举报
回复
不行的。不支持decimal转换成varchar
wwwwb 2010-11-23
  • 打赏
  • 举报
回复
cast(column1 as varchar)试试
yuyadie 2010-11-23
  • 打赏
  • 举报
回复
字段column1=21.00,char(column1)=0000000021.00
PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,现在已经更名为PostgreSQL. PostgreSQL支持大部分SQL标准并且提供了许多其它现代特性:复杂查询、外键、触发器、视图、事务完整性等。 PostgreSQL 是一个免费的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。 事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。 Inprise 的 InterBase 以及SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。从技术角度来讲,PostgreSQL 采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。 本课程作为PostgreSQL数据库管理之三,主要讲解以下内容:1.     PostgreSQL约束讲解和剖析2.     PostgreSQL数据类型3.     PostgreSQL的结构管理4.     PostgreSQL条件表达式和操作5.     PostgreSQL使用小技巧

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧