很多时候,我们对查出来的数字希望数字位数能保持一致,如数据库里面某字段存的数据是2,3,4,10,11这样的格式,我们希望通过sql语句查出来的这个字段数字格式为02,03,04,10,11,显然对于只有1位数的不好处理,要采取自动补零的方法才行。下面就说下在DB2数据库里怎么通过sql语句来达到我们需要的目的:
其中用到了digits这个函数:digits(参数)
digits里的参数必须是整型参数,可以是smallint,int,bigint,decimal,其中smallint占5位,int占10位,bigint占19位,
decimal默认为5位,最多为31位可以表示为decimal(31).也就说digits参数能够容纳的数字最多为31位,通常digits在参数不足10位
的时候自动补零补齐到10位,等于10位的时候就返回10位,大于10位而小于19位的时候就自动补零补齐到19位,等于大于19位且小于31位的时候数字原封不动地返回不再自动补零。
即我们通过语句:
select digits(3) from TEST
查出来得结果会是:0000000003
通过
select digits(cast(3 as bigint)) from TEST
查出来得结果会是:0000000000000000003
通过
select digits(cast(3 as smallint)) from TEST
查出来得结果会是:00003
通过
select digits(cast(3 as delcimal(31))) from TEST
查出来得结果会是:0000000000000000000000000000003
好了 看到这里,我们会想到我们要自定义数字的位数来采取自动补零,那该怎么办,那应该很快的想到用right函数来截取我们所需要
的位数,于是就有了以下语句:
如最开始讲的最多只需要两位就好了:
select right(digits(3),2) from TEST
这样得到的结果将是:03
当然如果字段里的数字本来为2位数那就还是不变了。
这里要注意,数字等于多出19位需自动补零的话就要通过cast函数将参数转换为适合的delcimal类型了,不然如
select right(digits(123456789123456789123),22) from TEST
本应该需要补一个0的,但结果是原封不动的返回来了,这里我们就需要更改为:
select right(digits(cast(123456789123456789123 as decimal(22))),22) from TEST
这样就会获取我们需要的了。
大于31位的数字还要通过sql查询来自动补零就没办法用这个方法了,也许有其他方法,还没想到,请朋友们补上,碰到大于31位我想我只能通过程序来实现了,呵呵。
在mysql数据库里面,想给某个表里的字段的值在原来的值的基础上再增加内容,例如,
原来url为: http://127.0.0.1/cms
我想把它改为: http://127.0.0.1/cms/chinese
它是在原来值为” http://127.0.0.1/cms”的基础上追加了“/chinese”这样一个字符串。通常也许我们会直接用:
update cms_psn set url=’http://127.0.0.1/cms/chinese’;
这样来直接改变原来的值,下面还有一种方法,就是用concat连接字符串函数,用它的话我们可以将上面的语句改为:
update cms_psn set url=concat(url,’/chinses’);
这就是数据库mysql里面的字符串连接操作。不同的数据库有不同的字符串连接方法,如:
DB2数据库,即可以用“concat”也可以用“||”(如url || ‘/chinses’)来连接字符串,
MS SQL数据库,用“+”(如url + ‘/chinses’)来连接字符串
oracle中是用||进行字符串连接。
转自:http://blog.chinaunix.net/u/26654/showart_363328.html
DB2中所谓的数据移动,包括:
1. 数据的导入(Import)
2. 数据的导出(Export)
3. 数据的装入(Load)
导入和装入都是利用DB2的相关命令把某种格式的文件中的数据保存到数据库中的表中
导出是指把DB2数据库的表中的数据保存到某种格式的文件当中去
数据移动的作用:
如果要在不同的数据库管理系统之间转移数据,数据移动通常是最实用的一种方法,因为任何一种数据库管理系统都支持常用的几种文件格式,通过这个通用的接口,就很容易实现不同系统间数据的转移。
这三个命令中,Export最简单,因为从表中向文件转移数据,通常不会出现错误,也不会有非法的数据。 阅读全文…
因为工作中的需要,对一些sql语句引起死锁,要彻底地查一遍,即DB2对sql语句的性能检测,不然老是down机;下面是操作步骤:
在DB2命令窗口DB2 CLP状态下:
1、启动db2数据管理器
D:\Program Files\IBM\SQLLIB\BIN>db2 db2start
DB20000I DB2START 命令成功完成。
2、链接数据库
D:\Program Files\IBM\SQLLIB\BIN>db2 connect to cndb
数据库连接信息
数据库服务器 = DB2/NT 8.1.0
SQL 授权标识 = DB2ADMIN
本地数据库别名 = CNDB 阅读全文…
mysql的基本知识,实现对mysql的一些基本状态操作,在mysql遇到的一些瓶颈时可用进行修改,以后用得着:
1、查看MYSQL状态:show processlist (可以查看当前MYSQL服务器连接状况)
2、查看当前MySQL状态:status (可以看到当前连接数及Threads项)
3、修改最大连接数:在配置文件 /etc/my.cnf 中加入 max_connection=1000
4、重启MYSQL:service mysqld restart (重启服务)
5、检查设置:show variables(显示参数,查看max_connection项看是否已经更改过来)
Recent Comments