Oracle常用结构或函数使用笔记一

news/2025/2/9 0:41:07 标签: 数据库

With用法:

The WITH query_name clause lets you assign a name to a subquery block. You can then reference the subquery block multiple places in the query by specifying the query name. Oracle optimizes the query by treating the query name as either an inline view or as a temporary table.

WITH <alias_one> AS 
  (subquery_sql_statement),
     <alias_two> AS
  (sql_statement_from_alias_one)
SELECT <column_name_list>
FROM <alias_one>, <alias_two>
WHERE <join_condition>;

eg:

with  
sql1 as (select to_char(a) s_name
from test_tempa),
sql2 as (select to_char(b) s_name
from test_tempb where not exists (select s_name from sql1 where rownum=1))
select
* from sql1
union all
select
* from sql2


Decode用法:

Decode函数与一 系列嵌套的 IF-THEN-ELSE语句相似。base_exp与compare1,compare2等等依次进行比较。如果base_exp和 第i 个compare项匹配,就返回第i 个对应的value 。如果base_exp与任何的compare值都不匹配,则返回default;

decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

eg:

SELECT   DECODE(Status,0,'未预定'1,'已预定',2,'已入库')  AS status
FROM Stocks

//分析:

当Status=0时,将"未预定"赋值
当Status=1时,将"已预定"赋值
当Status=2时,将"已入库"赋值

NVL()函数:
NVL(ARG,VALUE)达标如果前面的ARG值为NULL那么返回的值为后面的VALUE

NVL(eExpression1, eExpression2) 

eExpression1 和 eExpression2 可以是任意一种数据类型;


DECODE与NVL结合使用:

DECODE(NVL(ChangeNum,''),'','-',ChangeNum)   

//分析:
首先判断ChangeNum是否为空.若为空赋空值[NVL函数]
其次,判断取出的字段是否为空,如果是则赋'-'
最后的默认处理是ChangeNum

LPAD和RPAD的用法:

lpad( string1, padded_length, [ pad_string ] )

其中string1是需要粘贴字符的字符串
padded_length 是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成padded_length;pad_string是个可选参数,如果这个参数未写,lpad函数将会在string1的左边粘贴空格。

eg::

select lpad('tech',2) from dual
返回值:te
select lpad('tech', 8, '0') from dual
返回值:0000tech

TRUNC用法:

1.TRUNC(for dates)

TRUNC函数为指定元素而截去的日期值。

其具体的语法格式:TRUNC(date[,fmt]) 

date 一个日期值

fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去

TRUNC(TO_DATE(’24-Nov-1999 08:00 pm’,’dd-mon-yyyy hh:mi am’))  
=24-Nov-1999 12:00:00 am’
TRUNC(TO_DATE(’
24-Nov-1999 08:37 pm’,’dd-mon-yyyy hh:mi am’,’hh’))
=24-Nov-1999 08:00:00 am’

round (date,''format'')未指定format时,如果日期中的时间在中午之前,则将日期中的时间截断为12 A.M.(午夜,一天的开始),否则进到第二天。TRUNC(date,''format'')未指定format时,将日期截为12 A.M.,不考虑是否在中午之前的条件。

2.TRUNC(for number)

TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。

其具体的语法格式:TRUNC(number[,decimals]) 

number 待做截取处理的数值

decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分

TRUNC(89.9852=89.98
TRUNC(
89.985=89
TRUNC(
89.985-1=80

注:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记.

OK,先举这几个,以后用到的再继续查找记录,谢谢。

转载于:https://www.cnblogs.com/pfs1314/archive/2011/08/18/2145011.html


http://www.niftyadmin.cn/n/1493273.html

相关文章

*在scanf printf中的作用

在网上看到的&#xff0c;贴过来记录一下 http://www.cppleyuan.com/viewthread.php?tid9428 一个有趣的打印菱形的程序 1 #include <stdio.h>2 3 int line 1;4 int main()5 {6 printf("%*s\n",7 7-(line>4? line-4: 4-line),8 …

牛客算法题

字节题库 NC78 反转链表 NC78 反转链表 迭代法 class Solution:# 返回ListNodedef ReverseList(self, pHead):ppHeadpreNonewhile p:aftp.nextp.nextprepreppaftreturn pre递归法 class Solution:# 返回ListNodedef ReverseList(self, pHead):if not pHead or not pHead.n…

中台之上(六):如何为一个商业银行设计业务架构?

从实际操作的角度讲&#xff0c;企业级业务架构设计及其建模过程是一个充满可能性和争议的过程&#xff0c;并没有一个直观的量化标准能够用于判断一个架构方案的好坏&#xff0c;我们可以通过一个虚拟的例子体会一下。 假定我们为A商业银行设计企业级业务架构&#xff0c;为了…

树模型问题汇总

文章目录决策树集成学习AdaBoostGBDTXgboostXgboost在优缺点Xgboost损失函数推导与求解Xgboost计算过程gblinearXgboost结点分裂的近似策略Xgboost在工程实现上有哪些特点1.块结构设计2.缓存访问优化算法3.“核外”块计算Xgboost是怎么做到并行化的&#xff1f;LightGBMGOSS 单…

2、Dubbo-核心概念

dubbo核心概念 2.1&#xff09;、简介 Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架&#xff0c; 它提供了三大核心能力&#xff1a;面向接口的远程方法调用&#xff0c;智能容错和负载均衡&#xff0c;以及服务自动注册和发现。 官网&…

常见的时间复杂度

文章目录O(log⁡N)\mathcal{O}(\log N)O(logN)有序数据相对有序数据每次操作排除一半可能性二叉搜索树判断二叉树是否合法BST的查找BST的插入BST的删除可以转为为二分查找的问题O(log⁡N⋅log⁡N)\mathcal{O}(\log N \cdot \log N)O(logN⋅logN)O(N)\mathcal{O}(N)O(N)O(Nlog⁡…

X86逆向教程11:F12暂停法的妙用

本节课将介绍F12暂停法的使用技巧&#xff0c;F12暂停法的原理其实很简单&#xff0c;当我们点击OD中的暂停按钮时&#xff0c;OD会将当前的堆栈状态保存起来&#xff0c;并暂停当前窗体的线程执行&#xff0c;直到我们点击运行按钮OD才会唤醒全部线程并继续执行程序&#xff0…

第 6 章 存储 - 042 - 用 volume container 共享数据

volume container volume container 是专门为其他容器提供 volume 的容器。它提供的卷可以是 bind mount&#xff0c;也可以是 docker managed volume。 创建 volume container&#xff1a; 容器名为 vc_data&#xff08;vc 是 volume container 的缩写&#xff09;。volume co…