前些天在写存储过程的时候,需要用到这样一个功能:
14.2返回15 0.8
14.0返回14 0
思路是有带小数的取整+1,1-小数部分。由于在游标判断的时候有30个字段都需要判断。如果直接写在代码里面就有很多重复代码,造成冗余。
就想到用函数。没写过函数哟,就到网上看了一些例子:
create function GetInt_decimal(
参数
)
returns varchar(20) 返回类型
as
begin
处理代码
return 返回变量
end
----------------------------------------------------------------------------------------------------------
很快就遇到一个问题,我是要返回多变量。
后来有个网友提醒用table 和拼字串的方法:(在这很感谢他)
方法一:table
if object_id('GetInt_decimal') is not null
drop function GetInt_decimal
go
create function GetInt_decimal(
@p decimal(18,8)
)
returns @table table(i int,d decimal(18,8))
as
begin
Declare @Int_Num as int,@decimal_Num as decimal(18,8)
if @p-cast(@p as int)<>0
begin
set @Int_Num=1+cast(@p as int)--整数
set @decimal_Num=@p-cast(@p as int)--小数
end
else
begin
set @Int_Num=@p
set @decimal_Num=0
end
if @@error=0
insert into @table select @Int_Num,@decimal_Num
return
end
方法二:拼字串
if object_id('GetInt_decimal') is not null
drop function GetInt_decimal
go
create function GetInt_decimal(
@p decimal(18,8)
)
returns varchar(20)
as
begin
Declare @Int_Num as int,@decimal_Num as decimal(18,8),@Int_decimal varchar(20)
if @p-cast(@p as int)<>0
begin
set @Int_Num=1+cast(@p as int)--整数
set @decimal_Num=@p-cast(@p as int)--小数
end
else
begin
set @Int_Num=@p
set @decimal_Num=0
end
if @@error=0
set @Int_decimal=convert(varchar,@Int_Num)+'|'+convert(varchar,@decimal_Num)
return @Int_decimal
end
分享到:
相关推荐
从不同的方面介绍了PostgreSQL_与_MS_SQLServer之间的差异,包括变量的定义和语法结构,存储过程、函数、游标等等
4.4.2 MS SQL Server 2000 4.4.3 MS SQL Server 2005 4.4.4 Oracle 4.4.5 DB2 4.4.6 数据库分页 4.5 抑制数据重复 4.6 计算字段 4.6.1 常量字段 4.6.2 字段间的计算 4.6.3 数据处理函数 4.6.4...
4.4.2 MS SQL Server 2000 4.4.3 MS SQL Server 2005 4.4.4 Oracle 4.4.5 DB2 4.4.6 数据库分页 4.5 抑制数据重复 4.6 计算字段 4.6.1 常量字段 4.6.2 字段间的计算 4.6.3 数据处理函数 4.6.4...
在SQL*PLUS 中使用变量453 DEFINE 454 ACCEPT 455 NEW_VALUE457 DUAL 表458 DECODE 函数459 日期转换462 运行一系列的SQL 文件465 在你的SQL 脚本中加入注释466 高级报表467 总结469 问与答469 校练场469 练习470 第...
4.4.2 MS SQL Server 2000 4.4.3 MS SQL Server 2005 4.4.4 Oracle 4.4.5 DB2 4.4.6 数据库分页 4.5 抑制数据重复 4.6 计算字段 4.6.1 常量字段 4.6.2 字段间的计算 4.6.3 数据处理函数 4.6.4...
4.4.2 MS SQL Server 2000 4.4.3 MS SQL Server 2005 4.4.4 Oracle 4.4.5 DB2 4.4.6 数据库分页 4.5 抑制数据重复 4.6 计算字段 4.6.1 常量字段 4.6.2 字段间的计算 4.6.3 数据处理函数 4.6.4...
4.4.2 MS SQL Server 2000 4.4.3 MS SQL Server 2005 4.4.4 Oracle 4.4.5 DB2 4.4.6 数据库分页 4.5 抑制数据重复 4.6 计算字段 4.6.1 常量字段 4.6.2 字段间的计算 4.6.3 数据处理函数 4.6.4...
如果您的计算机已安装 SQL Server 2000 管理工具和 SQL Server Express 的默认实例,则可以使用 SQL Server 安装程序安装 SQL Server 2000 的默认实例。但是,这样做会禁用已安装的 SQL Server Express 实例。因此,...
附录含有完整的函数和定义、命令行开关、特殊变量、常见模块和Perl调试器的列表,全功能的、面向对象的CGI程序,一些有用的脚本,以及很有帮助的HTM教程。 本书非常适合于Perl语言初学者阅读,对于Perl程序员,也有...
可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在login.sql文件中定义如下一行 DEFINE_EDITOR=vi f、运行命令文件 SQL>START test SQL>@test 常用SQL*Plus语句 a、表的创建、修改、删除 创建表的...
21天学习SQL V1.0.pdf 66 SQL 21 日自学通(V1.0) 翻译人笨猪 EMAIL wyhsillypig@163.com 2 日期/时间函数.........................................................................................................
接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象...
简便的MS SQL 数据库 表内容 脚本 生成器 将表数据生成SQL脚本的存储过程 直接从SQL语句问题贴子数据建表并生成建表语句的存储过程 从SQL中的一个表中导出HTML文件表格 获取數据库表的前N条记录 几段SQL Server语句...
句,这里我们将其放到private 里,因为一般的函数都放在public 里,而变量 都放在private 里。 #ifndef WIDGET_H #define WIDGET_H #include #include "mydlg.h" //包含头文件 namespace Ui { class Widget; } ...
int k ) /* 函数定义 */ fact( { int i, y = 1; # include <stdio.h> void main( ) for(i = 2; i ; i++) { y = y*i; /* 计算 k! */ int m, n, resm, resn; return y; /* 结果返回 结果返回*/ } scanf("%d%d", &m, &...
组件的智能性体现在除了大量功能函数外,数据绑定包含各种数据库的绑定(oracle、DB2、MS SQL、ACCESS等)、 文本文件数据绑定,数据源没有个数限制,可以添加多个数据源进行数据显示,咖啡智能报表不是简单的进行...
可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在login.sql文件中定义如下一行 DEFINE_EDITOR=vi f、运行命令文件 SQL>START test SQL>@test 常用SQL*Plus语句 a、表的创建、修改、删除 创建表的...
而且,尽管dBASE、Paradox本身的DDL (Data Definition Language,即数据定义语言)和DML(Data Manipulation Language,即数据操纵语言)是非结构化查询的,但它们仍然可以使用VB的SQL语句和JET引擎来操纵。...
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概...