sql语句中的几个小问题?(50分)

  • 主题发起人 主题发起人 Serena
  • 开始时间 开始时间
S

Serena

Unregistered / Unconfirmed
GUEST, unregistred user!
1.select 金额1+金额2 as 总金额
如果金额1或者是金额2有一个为空,求出金额就为空;我设置了金额1和金额2
的默认值是1.00,可是求出的结果还是空。数据库在sql server 2000中。
2.怎样在sql语句中设置select的字段的小数位数?
 
select isnull(金额1,0)+isnull(金额2,0) as 总金额
 
默认值应该为0吧,库中字段是什么类型的?
可以用Decimal(m,n)来控制小数位数,
也可以用format函数在程序中控制。
 
你查一下SQL SERVER2000 的SQL手册。肯定有转换空字符的语句。将其转换为 0 就可以了。
 
同意fresh,自然就是0了,但还是建议你定义时用默认值
 
来迟了耶
 
还有一种方法:不过这个就比fresh的麻烦了
金额1=case 金额1 when null then 0 else 金额1 end
 
输出结果的精度是由输入的最大精度决定的(intebase是这样,不知sqlserver然否)
try
select 1.00+2.000 as AA
select 1.00+2 as AA
 
对与第一个问题:同意fresh的答案
对与第二个问题:可以用convert函数,不能用format,那是delphi的函数
 
楼上的兄弟说得好清楚啊!
 
拿分来,CONVERT(char(8), getdate(),112)SQL SERVER 和SYBASE下通过
create procedure get_server_date @str_now_date char(8) out as
select @str_now_date=CONVERT(char(8), getdate(),112)
 
来迟了。
 
没明白,到底怎么设置小数位数?
 
用ROUND(isnull(金额1,0)+isnull(金额2,0) ,2) AS 金额 就可以了
 
多人接受答案了。
 
后退
顶部