() 函数是PL/SQL 的强大功能之一。目前只有公司的SQL提供了这个功能。其他数据库厂商的 SQL 实现还没有这个功能。
该功能是PL/SQL的强大功能之一。目前只有公司的SQL提供了这个功能,其他数据库厂商的SQL实现没有这个功能。它有什么用?我们先构建一个例子。假设我们要处理知行员工的工资。标准为:8000元以下工资20%;工资8000元以上加收15%。通常的做法是先选择记录。工资字段值?进入var-from,然后使用if-then-else或case等流程控制语句来判断变量var-。如果使用函数,那么我们可以省略这些流控语句,直接通过SQL语句完成。如下: (sign(-8000),1,*1.15,-1,*1.2, from 是不是很简洁?语法:(value,if1, then1, if2,then2,if3,then3,…,else),表示如果值等于if1,则函数的结果返回then1,…,如果不等于任何if值,它返回else。乍一看,它只能做一个相等的测试,但我刚才也看到我们可以通过用一些函数或计算替换值来使函数具有大于、小于或等于函数。</
(条件,值1,翻译值1,值2,翻译值2,…值n,翻译值n,默认值)
(字段oracle中sign函数用法,比较1,值1,比较2,值2,…..,比较n,值n默认值)
该函数的含义如下:
IF 条件=值 1 THEN
(翻译值1)
ELSIF 条件=值 2 THEN
(翻译值2)
……
ELSIF 条件=值 n THEN
(翻译值 n)
其他
(默认值)
如果结束
()函数使用技巧
·软件环境:
1、 NT4.0+ 8.0.4
2、安装路径为:C:/ORANT
· 使用方法:
1、对比尺寸
(sign( 1-),-1, 1,) from dual; –取较小的值
sign()函数根据某个值是0、正数还是负数返回0、1、-1。
例如:
变量 1=10,变量 2=20
然后sign( 1- 2)返回-1,解码结果为“变量1”,达到取较小值的目的。
2、表和视图结构转换
现有产品销售表sale,表结构为:
月字符(6) –month
(10,2)–月销售额
现有数据为:
想转换成如下结构的数据:
(4) –year
(10,2)–1个月销售额
(10,2)–2个月销售额
(10,2)–3个月销售额
(10,2)–4个月销售额
(10,2)–5个月销售额
(10,2)–6个月销售额
(10,2)–7个月销售额
(10,2)–8个月销售额
(10,2)–9 个月的销售额
(10,2)–10 个月的销售额
(10,2)- 11月销售额
(10,2)–12个月的销售额
结构转换的SQL语句为:
或查看
(年,,,,,,,,,,,,,,)
作为
(月,1,4),
sum(((month,5,2),’01’,sell,0)),
sum(((month,5,2),’02’,sell,0)),
sum(((month,5,2),’03’,sell,0)),
sum(((month,5,2),’04’,sell,0)),
============================================== ========
补充 1:
有一个学生成绩表,现在我们需要使用函数来实现如下功能: score>85,表现优秀; >70 显示良好; >60 通过;否则就是失败。
假设数字是id,分数是score,那么:
id, (sign(score-85),1,”,0,”,-1,
(sign(score-70),1,’good’,0,’good’,-1,
(sign(score-60),1,’pass’,0,’pass’,-1,’fail’)))
来自;
============================================== ========
补充 2:
函数的语法结构如下:
(,, )
(,,,, )
(,,,,, ….,, )
(,,, )
(,,,,, )
(,,,,, ….,,, )
函数将表达式与搜索词进行比较oracle中sign函数用法,如果匹配,则返回结果;如果不匹配,则返回值;如果该值未定义,则返回空值。
下面是一个简单的测试来说明函数的用法:
SQL> 表 t as ,, from ;
表格。
SQL> * 来自 t;
—————————— —————– ————- ———
系统
外线
CSMIG
斯科特
EYGLE 用户
WMSYS 20-OCT-04
8 行。
SQL> ,(,null,”,”) 来自 t;
—————————— ——–
系统
外线
CSMIG
斯科特
EYGLE
WMSYS
8 行。
SQL> ,(,null,”) 来自 t;
—————————— ——–
系统
外线
CSMIG
斯科特
EYGLE
WMSYS
8 行。
文章来源:https://www.cnblogs.com/kafony/archive/2011/08/25/2153675.html
感谢您的来访,获取更多精彩文章请收藏本站。
