sql简单函数用法
定义函数
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER function [dbo].[FunJSLC](@carid bigint,@date datetime)
returns decimal
as
begin
declare @jslc decimal
set @jslc=(select JSLC from BYReMIn where iCarID=@carid and dtDate=@date)
return(@jslc)
end
存储过程应用函数
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER proc [dbo].[BYProc]
as
declare @jglc decimal
select cCode,dtDate ,cLBName,dMoney ,JSLC=dbo.FunJSLC(iCarID,dtDate),
JGLC=(dbo.FunJSLC(iCarID,dtDate)-dbo.Funccclc(iCarID)),
CCLC=dbo.Funccclc(iCarID),cHandler,cUName,cBYXM,cMemo into #t from vBYB
select cCode as '车牌号',dtDate as '保养日期',cLBName as '保养类别',dMoney as '保养费用',
JSLC as '上次保养里程',CCLC as '当前里程',cHandler as '经手人',cUName as '保养单位',
cBYXM as '保养项目',cMemo as '备注'
from #t where CCLC>JSLC
dbo.FunJSLC(iCarID,dtDate)即函数FunJSLC的返回值
了解最基本的定义调用会用就OK
这样实现统计的时候就方便多了,用sql去处理,使程序代码简洁,有效率!
相关文档:
在SQL*Plus中默认的"&"表示替代变量,SQL*Plus认为&符后面的字符串为变量;只要在命令中出现该符号,SQL*Plus就会要你输入替代值。这就意味着你无法将一个含有该符号的字符串插入或更新到数据库
set define off 关闭替代变量功能,“&”将作为普通字符
set def ......
--oracle优化slq语句
(1)选择最有效率的表名顺序(只在基于规则的优化器中有效):
Oracle的解析器按照从右到左的顺序处理from子句中的表名,from子句中写在最后的表(基础表 driving table)将被最先处理,在from子句中包含多个表的情况下,您必须选择记录条数最少的表作为基础表。假如有3个以上的 ......
备份:
A. 备份整个 MyNwind 数据库
说明 MyNwind 数据库仅用于演示。
下例创建用于存放 MyNwind 数据库完整备份的逻辑备份设备。
......
sql获取字母:
CREATE FUNCTION dbo.F_Get_STR (@S VARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX('%[^a-z]%',@S)>0
BEGIN
&n ......
.在查询中会遇到 UNION ALL,它的用法和union一样,只不过union含有distinct的功能,它会把两张表了重复的记录去掉,而union all不会,所以从效率上,union all 会高一点.
2.union all 是按原先顺序排列的,union 把两张表中的重复数据去掉后还进行了重新排序
声明:此文来源于网路!
内容摘要:在PL/SQL开发过程中,使用SQL, ......