SQL查询金额去掉小数点后面的零,以及SUBSTRING的用法

DECLARE @lastprice_new VARCHAR(50)
    DECLARE @part_var VARCHAR(50)  
    DECLARE @part_var2 VARCHAR(50)
    SET @lastprice_new='1525852252252.0'
   
    --判断是否有小数点,大于0表示有小数点,等于0则表示没有小数点
    PRINT charindex('.',@lastprice_new)
    --输入为 14
  
    BEGIN
    SELECT @part_var2=Substring(@lastprice_new,0,CHARINDEX('.',@lastprice_new))
    Select @part_var=Substring(@lastprice_new,CHARINDEX('.',@lastprice_new),Len(@lastprice_new))
    END
    PRINT @part_var2
    PRINT @part_var
   
    --输入为分别为 1525852252252,.0
    SELECT SUBSTRING('abcdef',-1,4)
    --输出为 ab
   
    Select Substring('44444.266',CHARINDEX('.','44444.2222'),Len('44444.2222'));
    Select Substring('44444.266',0,CHARINDEX('.','44444.2222'));
    --输出分别为 .226 ,44444
   
   
    --用decimal(15,2)类型取值,如果不想四舍五入用round处理下
    select cast(0.3355555555555 as decimal(38,2)) =0.34
    select ROUND('0.3335555555555',2)=0.33

posted @ 2012-06-12 18:07  阿玉儿  阅读(550)  评论(0编辑  收藏  举报