蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 数 据 库


    

蓝森林 http://www.lslnet.com 2006年7月18日 11:08


请教各位高手一个函数或方法~

我现在正在写一个存储过程,现在需要对一个字符串(包含中英文)进行判断,如果这个字符串的length超过了我设定的长度,比如10,那么就需要把剩下的那部分截位并放在下一行。
我现在有两个疑难问题:
1、有没有一个函数能够返回两个数相除的得数的0舍1入数。据个例子:比如字符串长度35,我设定的数字是10,那么很明显这个字符串会占用4行,也就是说35/10=3.5,但是我就要把它判断成4。
2、DB2里面中文算两个字符,并且可以删除或截成一半(我晕。。。。),所以麻烦就是,我用substr('你好aa',2,4),“你好”的“你”字会活活拆成两个字符,变成乱码,有没有办法不让中文拆散?
谢谢了!

请教各位高手一个函数或方法~

知不知道都请顶一下呀,在等~

请教各位高手一个函数或方法~

我不清楚DB2是否有这样的函数,不过我建议这样做:用java或C
来写存储过程,很容易就能达到你的要求,再有就是如果可能的话尽量不要让DB2来做substr这样的事情,可以在程序中做好再交给DB2.

请教各位高手一个函数或方法~

我想DB2本身没法解决这个问题,只能用开发工具了,楼上的说得对!!

请教各位高手一个函数或方法~

http://www.lslnet.com/linux/#forum/22/20040729/376528.html

请教各位高手一个函数或方法~

我把mymm老板的贴子转过来:

1、是这个意思吗?
代码:
PServer:/home/db2inst1>; db2 "values(case when mod(31,10) >; 0 then 31/10+1 else 31/10 end)"

1         
-----------
          4

  1 record(s) selected.
写个函数吧!
2、好像没办法!如果这样:

代码:
D:\>;db2 "values substr(graphic('你好aa'),2,4)"

1
--------
好aa 

  1 条记录已选择。
全变成全角了,也不合适!思考中!

请教各位高手一个函数或方法~

第一个我倒是写了个case解决的
case
                  when (length(ltrim(rtrim(ORDER_CONTEXT))) / v_orderwidth = 0) or
                             (length(ltrim(rtrim(ORDER_CONTEXT))) / v_orderwidth = 1 and
                                  mod(length(ltrim(rtrim(ORDER_CONTEXT))),v_orderwidth) = 0)
                      then 1
                          when (length(ltrim(rtrim(ORDER_CONTEXT))) / v_orderwidth <>; 0 and
                            mod(length(ltrim(rtrim(ORDER_CONTEXT))),v_orderwidth) <>; 0)
                      then (length(ltrim(rtrim(ORDER_CONTEXT))) / v_orderwidth)+1
                          else (length(ltrim(rtrim(ORDER_CONTEXT))) / v_orderwidth) end



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com