sql server数据库实现保留指定位数小数的函数

有时候需要对一个特定的含有小数点的数字保留指定位数,比如“123.123600”。

在数据库中以函数的形式实现如下:

USE [数据库名称]
GO
/****** Object:  UserDefinedFunction [dbo].[AvgLimit]    Script Date: 2016/12/29 11:30:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create function [dbo].[AvgLimit](@strength numeric(20,6),@numlimit int)Returns varchar(30)As BeginDeclare @avg numeric(20,6)Declare @avgStr varchar(30)Set @avg= round(@strength,@numlimit)Set @avgStr= convert(varchar(30),@avg)if @numlimit=0set  @avgStr = substring(@avgStr,0,len(@avgStr)-6)if @numlimit>0set @avgStr = substring(@avgStr,0,len(@avgStr)-5+@numlimit)--substring(@avgStr,0,len(@avgStr)-6+@numlimit)
Return  @avgStrEnd

举例说明:

--保留0位小数,结果:123
select [dbo].[AvgLimit](123.123600,0)
--保留1位小数,结果:123.1
select [dbo].[AvgLimit](123.123600,1)
--保留2位小数,结果:123.12
select [dbo].[AvgLimit](123.123600,2)
--保留3位小数,结果:123.124
select [dbo].[AvgLimit](123.123600,3)
--保留4位小数,结果:123.1236
select [dbo].[AvgLimit](123.123600,4)
--保留5位小数,结果:123.12360
select [dbo].[AvgLimit](123.123600,5)

注意:最多只能保留6位小数,因为创建函数的时候传递的参数@strength numeric(20,6),只保留6位小数

转载于:https://www.cnblogs.com/shuilangyizu/p/6232382.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos7下安装netstat

刚安装centos7发想没有查看端口的命令 netstat yum install net-tools转载于:https://www.cnblogs.com/cuizhipeng/p/5329811.html

【pyqt5学习】——items view相关控件(list view、table view)

目录 list view——列表视图 table view——表格视图 list view——列表视图 PyQt5-高级控件使用(QListView) - ygzhaof_100 - 博客园QListView用于展示数据,子类是QListWidget。QlistView基于模型Mode,需要程序创建Model然后保…

变量定义和声明的区别~~~概念上千万不要栽跟头!!!

变量的声明有两种情况: 1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。 2、另一种是不需要建立存储空间的。 例如:extern int a 其中变量a是在别的文件中定义的。 声明是向编译器介绍名字-&…

解决Ajax不能跨域的方法

1. Ajax不能跨域请求的原因 同源策略(Same Origin Policy),是一种约定,该约定阻止当前脚本获取或者操作另一个域下的内容。所有支持Javascript的浏览器都支持同源策略,也就是说浏览器可以隔离来自不同源的内容,阻止跨域请求的发生…

【pyqt5学习】——containers相关控件(tab widget、scroll area、stack widget、tool box、MDI area、dock widget)

目录 1、tab widget 2、scroll area 2.1 使用方法 Step1.拖入QScrollArea ​Step2.改变widget控件布局 ​Step3.设置scrollAreaWidgetContents大小 3、Tool Box 4、Stacked Widget 4.1 案例展示 5、frame 6、MDI AREA 7、dock widget 7.1 悬浮状态 7.2 吸附状态 conta…

Java使用原子类进行多线程的 i++ 操作示例

2019独角兽企业重金招聘Python工程师标准>>> 使用AtomicInteger原子类进行 i 操作 可以有类似 synchronized 实现同步的效果。 原子操作是不能分割的整体,没有其他线程能够中断或检查正在原子操作中的变量。一个原子类型就是一个原子操作可用的类型&…

深入理解面向对象设计的七大原则

一.面向对象设计的七大原则是什么? 1.开放封闭原则 2.里氏转换原则 3.依赖倒转原则 4.组合/聚合原则 5.接口隔离原则 6.“迪米特”法则 7.单一职责原则 二.七大原则是什么含义? 序号 面向对象设计七大原则 偶的理解 1 …

mybatis实战教程(mybatis in action)之二:以接口的方式编程

前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询。请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句:session.selectOne("com.yihaomen.mybatis.models.UserMapper.selectUserByID&…

Linux内核分析06

进程的描述和进程的创建 一,进程的描述 进程控制块PCB——task_struct (进程描述符),为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。 struct task_struct数据结…

【pyqt5学习】——pyqt5中.qrc资源文件的创建与编写

目录 一、说明 二、安装pyqt5以及相关工具(pyqt5、pyuic、pqrcc) 三、创建.ui文件 1、选中文件右键-external-pyqt5 打开GUI设计界面 2、创建一个界面(内含四个等大label框) 3、CTRLS保存 4、找到ui文件,右键--e…

zabbix3.0.4通过jmx监控tomcat

jdk下载页面http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlhttp://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.rpm?AuthParam1462948138_871b75d4b1dd7155e8cbe4f23e5cd2cd脚本[rootNFS-WEB1 latest]# vim /e…

C#学习笔记——25个经典问题

1.静态成员和非静态成员的区别? 2.const 和 static readonly 区别? 3.extern 是什么意思? 4.abstract 是什么意思? 5.internal 修饰符起什么作用? 6.sealed 修饰符是干什么的? 7.override 和 o…

PHP的学习--RSA加密解密

PHP服务端与客户端交互或者提供开放API时,通常需要对敏感的数据进行加密,这时候rsa非对称加密就能派上用处了。 举个通俗易懂的例子,假设我们再登录一个网站,发送账号和密码,请求被拦截了。 密码没加密,那攻…

Swift学习

1、Swift网址 http://swiftdoc.org/ 2、 https://github.com/ipader/SwiftGuide 转载于:https://www.cnblogs.com/superbobo/p/5329876.html

【pyqt5学习】——最新版:配置external tools(designer、pyuic、pqrcc)

目录 1、pip install PyQt5 2、pip install pyqt5-tools 3、file-settings-tools-external tool 点击加号定义工具名字,名字随意便于区分即可 双击每一个工具名字,配置路径(注意每一个exe的路径) designer.exe pyuic.exe py…

Linux中vi命令详解

最近vi用的多,很多技巧不知道,备注一份, vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于 对Unix及Linux系统的任何版本&…

C# 属性和字段

以下的文章是摘录的,作者已经不详了。之所以摘录,是因为这个概念很重要特别对于VFP程序员来说,这里构造属性就与vfp的方法完全不同。c#的属性融合了vfp的addproperty() 和属性的access method和assign method 。不一而足使用属性&#xff0c…

SEO优化---学会建立高转化率的网站关键词库

想要优化好一个网站,行业的分析,以及关键词的挖掘是必要的,有一定的关键词排名了,但是转化率和流量方面却很不理想这种情况大部分是只注重了有指数的关键词排名,而忽略了长尾关键词和一些没有指数但是可以带来巨大流量的关键词。 网站大部分的…

Monkey脚本编写

脚本优势:简单、快捷、不需要借助任何工具,可以做简单的性能测试 脚本缺点:只能简单实现坐标、按键等基本操作,无逻辑性 脚本格式: 脚本API: 例子: 打开浏览器,输入WWW.jikexueyuan.…

C#通过DllImport引入dll中的C++非托管类

首先从msdn了解到,DllImport是用来 将特性化方法由非托管动态链接库 (DLL) 作为静态入口点公开。 从以上语句我们可以理解出三点:1.C编写的非托管dll可以通过DllImport引入到C#中;2.引入到C#中的只能是C方法(或者说函数&#xff0…