MSSQL网页编程之小写转年夜写金额存储历程[SQL SERVER]
也就是说在php本地调用pdoprepare中的mysql_real_escape_string来操作query,使用的是本地单字节字符集,即编码为xbfx5cx27,并带入到mysql中查询,由于使用setnames设置了连接字符集.server|存储历程|年夜写|金额|小写原作在SQL2000中有一些成绩。修改毛病并在SQL2000中运转经由过程。/********************************************************(wleii165@yahoo.com)
版本:1.0
创立工夫:20020227
修正工夫:
功效:小写金额转换成年夜写
参数:n_LowerMoney小写金额
v_TransType品种--1:directlytranslate,0:readitinwords
输入:年夜写金额
********************************************************/
CREATEPROCEDUREdbo.L2U
(
@n_LowerMoneynumeric(15,2),
@v_TransTypeint,
@RETVARCHAR(200)output
)
AS
Declare@v_LowerStrVARCHAR(200)--小写金额
Declare@v_UpperPartVARCHAR(200)
Declare@v_UpperStrVARCHAR(200)--年夜写金额
Declare@i_Iint
setnocounton
select@v_LowerStr=LTRIM(RTRIM(STR(@n_LowerMoney,20,2)))--四舍五进为指定的精度并删除数据摆布空格
select@i_I=1
select@v_UpperStr=
while(@i_I<=len(@v_LowerStr))
begin
select@v_UpperPart=casesubstring(@v_LowerStr,len(@v_LowerStr)-@i_I+1,1)
WHEN.THEN元
WHEN0THEN零
WHEN1THEN壹
WHEN2THEN贰
WHEN3THEN叁
WHEN4THEN肆
WHEN5THEN伍
WHEN6THEN陆
WHEN7THEN柒
WHEN8THEN捌
WHEN9THEN玖
END
+
case@i_I
WHEN1THEN分
WHEN2THEN角
WHEN3THEN
WHEN4THEN
WHEN5THEN拾
WHEN6THEN佰
WHEN7THEN仟
WHEN8THEN万
WHEN9THEN拾
WHEN10THEN佰
WHEN11THEN仟
WHEN12THEN亿
WHEN13THEN拾
WHEN14THEN佰
WHEN15THEN仟
WHEN16THEN万
ELSE
END
select@v_UpperStr=@v_UpperPart+@v_UpperStr
select@i_I=@i_I+1
end
--------print//v_UpperStr=+@v_UpperStr+//
if(@v_TransType=0)
begin
select@v_UpperStr=REPLACE(@v_UpperStr,零拾,零)
select@v_UpperStr=REPLACE(@v_UpperStr,零佰,零)
select@v_UpperStr=REPLACE(@v_UpperStr,零仟,零)
select@v_UpperStr=REPLACE(@v_UpperStr,零零零,零)
select@v_UpperStr=REPLACE(@v_UpperStr,零零,零)
select@v_UpperStr=REPLACE(@v_UpperStr,零角零分,整)
select@v_UpperStr=REPLACE(@v_UpperStr,零分,整)
select@v_UpperStr=REPLACE(@v_UpperStr,零角,零)
select@v_UpperStr=REPLACE(@v_UpperStr,零亿零万零元,亿元)
select@v_UpperStr=REPLACE(@v_UpperStr,亿零万零元,亿元)
select@v_UpperStr=REPLACE(@v_UpperStr,零亿零万,亿)
select@v_UpperStr=REPLACE(@v_UpperStr,零万零元,万元)
select@v_UpperStr=REPLACE(@v_UpperStr,万零元,万元)
select@v_UpperStr=REPLACE(@v_UpperStr,零亿,亿)
select@v_UpperStr=REPLACE(@v_UpperStr,零万,万)
select@v_UpperStr=REPLACE(@v_UpperStr,零元,元)
select@v_UpperStr=REPLACE(@v_UpperStr,零零,零)
end
--对壹元以下的金额的处置
if(substring(@v_UpperStr,1,1)=元)
begin
select@v_UpperStr=substring(@v_UpperStr,2,(len(@v_UpperStr)-1))
end
if(substring(@v_UpperStr,1,1)=零)
begin
select@v_UpperStr=substring(@v_UpperStr,2,(len(@v_UpperStr)-1))
end
if(substring(@v_UpperStr,1,1)=角)
begin
select@v_UpperStr=substring(@v_UpperStr,2,(len(@v_UpperStr)-1))
end
if(substring(@v_UpperStr,1,1)=分)
begin
select@v_UpperStr=substring(@v_UpperStr,2,(len(@v_UpperStr)-1))
end
if(substring(@v_UpperStr,1,1)=整)
begin
select@v_UpperStr=零元整
end
select@ret=@v_UpperStr
GO
挪用历程:
declare@retvarchar(200)
execL2U567983.897,1,@retoutput
select@ret
在Windows中MySQL以服务形式存在,在使用前应确保此服务已经启动,未启动可用netstartmysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqldstart"命令,注意启动者应具有管理员权限。 是要和操作系统进行Socket通讯的场景。否则建议慎重! groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。 我个人认为就是孜孜不懈的学习 始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。 如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。 一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。 对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。 但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
页:
[1]