oracle 命令函数,oracle常用命令,函数

1、ROW_NUMBER():返回结果集分区内行的序列号,每个分区的第一行从 1 开始

语法:

ROW_NUMBER () OVER ( [ ] )。

备注:

ORDER BY子句可确定在特定分区中为行分配唯一ROW_NUMBER的顺序。

和oracle中的rownum类似。

Select * from Person order by p_id.这样出来的是在外面排序的。而row_number()是在select中排序

参数:

:将FROM子句生成的结果集划入应用了ROW_NUMBER函数的分区。:确定将ROW_NUMBER 值分配给分区中的行的顺序。

返回类型:

bigint

列子:

select ROW_NUMBER () OVER (ORDER BY ba.serialno),ba.* FROM business_apply ba

2、插入单引号:

用‘’,单引号前加单引号就是插入单引号

3、oracle测试SQL运行时间

在sqlplus中运行 : set timing on;

4、反斜杠作用

/ : 在Oracle中,用来终止SQL语句。更准确的说,是表示了“运行现在位于缓冲区的SQL代码”。正斜杠也用作分隔项。

5、修改timezone

selectsystimestamp at time zone'CST6CDT'fromdual

6、sql%rowcount

sql%rowcount用于记录修改的条数,就如你在sqlplus下执行delete from之后提示已删除xx行一样, 这个参数必须要在一个修改语句和commit之间放置,否则你就得不到正确的修改行数。

例如:

SQL> declare n number;

2 begin

3 insert into test_a select level lv from dual connect by level<500;

4 n:=sql%rowcount;

5 commit;

6 dbms_output.put_line(n);

7 end;

8 /

499

PL/SQL procedure successfully completed.

SQL> declare n number;

2 begin

3 insert into test_a select level lv from dual connect by level<500;

4 commit;

5 n:=sql%rowcount;

6 dbms_output.put_line(n);

7 end;

8 /

0

PL/SQL procedure successfully completed.

×××××××××××××

如果我连续执行了3个select语句

然后调用sql%rowcount,得到的结果是最后一个select的条数。 要统计所有的,可以使用三个变量接收sql%rowcount,然后相加即可,不过貌似直接select的写法无法使用sql%rowcount。

问题描述: 在平时的业务处理中,经常遇到要对业务数据进行排序,并且要对null值也做相应的排序。在Oracle中,进行Order by排序时缺省认为null是最大值,所以如果是ASC升序则被排在最后,而DESC降序则排在最前。有的时候我们需要在降序排列时,同时要将null的数据排到最后,应该如何处理。 问题处理: 方法1:使用nvl函数 语法:Nvl(expr1, expr2) 若EXPR1是NULL,則返回EXPR2,否則返回EXPR1. SELECT NAME,NVL(TO_CHAR(COMM),'NOT APPLICATION') FROM TABLE1; 认识了NVL的语法,就可以在排序中使用,如: ORDER BY NVL(FIELD, '0') 方法2:使用其它函数,如decode,case。 方法3:nulls first或nulls last 语法: Nulls first:表示null值的记录将排在最前 Nulls last:表示null值的记录将排在最后 --null值始终放在最前面 select * from ac01 order by aac001 asc nulls first --null值始终放在最后面 select * from ac01 order by aac001 desc nulls last 经过上述方法的比较,第三种方法比较方便。

8.在oracle中当字段为null时候,where条件不等于什么 是查不出来的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值