--返回ASCII码
select  ASCII('A') "A的ASCII码" ,ASCII('a') "a的ASSCII码" from dual ;
--反向
select   CHR(65)  from dual;

--连接两个字符串,如果一个为空则返回有值的

select concat('Oracle','11g') "合并后" from dual;

--返回字符串中 每个  单词首字母大写

select initcap('oracle universal installer') "首字母大写后" from dual;

--返回一个字符在字符串'j'中从第6个开始第3次出现的位置

select INSTR ('jjjjjireutoilkjsdflkdsjfoiuewrlkdsjflkoieuroiu','j',-6,3) from dual ;
--返回字符串长度
select length('oituoireutoilkjsdflkdsjfoiuewrlkdsj') from dual; --6为正数时,j的位置
select length('jjjjjireutoilkj') from dual;                     --6为负数时,j的位置,从左往右数,但是返回值是正数位置

--去掉一个字符串从左边开始,包含'iuyu'的字符
select LTRIM('iuuuuyyuyuyuyuyuidsfdysytu','iuyu') from dual;

--替代字符串中指定的字符为指定的字符
select replace ('opopiiuopoijiuu','o','A') from Dual;

-------------------------------------------数字类函数
--返回大于或等于n的 最小整数

select ceil(9.02) from dual; --向上取整

--返回小于或等于n 的 最大整数

select floor(8.6345)  from dual;--向下取整

--sign 若正 返回1 若负 返回-1

select sign(9) from dual; --可以根据状态,比较大小

FLOOR——对给定的数字取整数位--向下取整
SQL> select floor(2345.67) from dual;
FLOOR(2345.67)
--------------
2345
CEIL-- 返回大于或等于给出数字的最小整数--向上取整
SQL> select ceil(3.1415927) from dual;
CEIL(3.1415927)
---------------
              4
ROUND——按照指定的精度进行四舍五入
SQL> select round(3.1415926,4) from dual;
ROUND(3.1415926,4)
------------------
            3.1416
TRUNC——按照指定的精度进行截取一个数
SQL> select trunc(3.1415926,4) from dual;
ROUND(3.1415926,4) 3.1415
------------------
           
------------------------------------------------------------------
 select sysdate  from   dual;

--取结果集前51条
select *
  from (select a.factorvalue,'1','105A'
          from productdata.femriskfactorlistb a
         where 1 = 1
           and a.riskcode = '106001003'
           and a.factortype = 'TextAge'
         order by a.factorvalueorder)
 where rownum <= 51;

----正则替换
 select regexp_replace('87Y','[^0-9]') from dual;----87
 
 --查询重复记录并删除
DELETE        SDBANKMAPPINGTEST WHERE ID IN(
SELECT  (comcode) from SDBANKMAPPINGTEST
group by (comcode) having count(*)>1 );
-- Add/modify columns
            
            
alter table test_daoru rename column NEW_FIELD_NAME to name;

 

--删除一个字段

alter table test_daoru
drop column ;

---快读插入N条数据-----------------------------------------------------------------------------
    declare  
    i integer; --定义变量  
    begin  
    i := 18;  
    loop  
    /* 插入数据 feeyear缴费期限   period保险期间 */  
    insert into sh_1044_nv(textage,sex,feeyear,period,amnt,cod1)  
    values(
    TO_CHAR(i||'Y'),'1','1000Y','10Y','','10000'
    );
    /* 参数递增 */  
    i := i + 1;  
    /* 停止条件 */  
    exit when i > 60;  
    end loop;  
    commit;  
    end;  

---Oracle自动序列号--------------------------------------------
  create sequence <序列名称>
  start with <起始数>
  increment by <增长量>
  [maxvalue 值]
  [minvalue 值]
  [cycle 当到达最大值的时候,将继续从头开始]
  [Nocycle -- 一直累加,不循环]
  [Cache ]

----------------------------------------------------------

--创建一个方法通过生日得到年龄
create or replace function GetAge(brithday varchar2) return number as
  v_Age number(3);
begin
  select to_char(sysdate, 'yyyy') -
         to_char(to_date(brithday, 'yyyy-mm-dd'), 'yyyy') +
         decode(sign(to_char(sysdate, 'mmdd') -
                     to_char(to_date(brithday, 'yyyy-mm-dd'), 'mmdd')),
                -1,
                -1,
                0,
                0,
                1,
                0)
    into v_Age
    from dual;
    return v_Age;
end;

----------------------------------------------------------
--3.查出锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的type,mode
SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,
s.terminal, s.logon_time, l.type
FROM v$session s,v$lock l
WHERE s.sid = l.sid
AND s.username IS NOT NULL
ORDER BY sid;
----------------------------------------------------------    
            
--锁表查询
SELECT object_name, machine, s.sid, s.serial#
FROM gv$locked_object l, dba_objects o, gv$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid;
--==================
--释放SESSION SQL:
--alter system kill session 'sid, serial#';
ALTER system kill session '23, 1647';
----------------------------------------------------------    
---查看数据库空间大小
select a.tablespace_name,
       a.bytes / 1024 / 1024 "Sum MB",
       (a.bytes - b.bytes) / 1024 / 1024 "used MB",
       b.bytes / 1024 / 1024 "free MB",
       round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "percent_used"
  from (select tablespace_name, sum(bytes) bytes
          from dba_data_files
         group by tablespace_name) a,
       (select tablespace_name, sum(bytes) bytes, max(bytes) largest
          from dba_free_space                                       
         group by tablespace_name) b                                
 where a.tablespace_name = b.tablespace_name                        
 order by ((a.bytes - b.bytes) / a.bytes) desc;                     
 ----------------------------------------------------------            
--修改字段长度                                                            
 alter table test_feilv_01 modify ( textage varchar2(10))           
----------------------------------------------------------            
 --汇总
select decode(grouping(a.scene_id) + grouping(a.enter_id),
                            1,'小计',
                            2,'总计',                 
                            a.enter_id) "公司编码",
             decode(grouping(a.scene_id), 1, count(*) || '条', a.scene_id) "报文编号"
--sum(f_pagesnumber) sum_pagesnumbers    
    from tft_xsl_template a
 group by rollup(a.enter_id, a.scene_id);                                                                 
----------------------------------------------------------
--oracle 中的替换
regexp_replace(1,2,3,4,5,6)

语法说明:1:字段   2:替换的字段  3:替换成什么  4:起始位置(默认从1开始)  5:替换的次数(0是无限次)  6:不区分大小写
                                                                  
----------------------------------------------------------
/*1. 利用游标循环更新、删除MemberAccount表中的数据*/
DECLARE My_Cursor CURSOR --定义游标
FOR (SELECT * FROM dbo.MemberAccount) --查出需要的集合放到游标中
OPEN My_Cursor; --打开游标
FETCH NEXT FROM My_Cursor ; --读取第一行数据
WHILE @@FETCH_STATUS = 0     
  BEGIN         
    --UPDATE dbo.MemberAccount SET UserName = UserName + 'A' WHERE CURRENT OF My_Cursor; --更新         
    --DELETE FROM dbo.MemberAccount WHERE CURRENT OF My_Cursor; --删除         
      FETCH NEXT FROM My_Cursor; --读取下一行数据     
  END
  CLOSE My_Cursor; --关闭游标
  DEALLOCATE My_Cursor; --释放游标
    GO

/*2. 利用游标循环更新MemberService表中的数据(更新每个用户所购买服务的时间)*/
 
DECLARE @UserId varchar(50)  
DECLARE My_Cursor CURSOR --定义游标
FOR (SELECT UserId FROM dbo.MemberAccount) --查出需要的集合放到游标中
OPEN My_Cursor; --打开游标
FETCH NEXT FROM My_Cursor INTO @UserId; --读取第一行数据(将MemberAccount表中的UserId放到@UserId变量中)
WHILE @@FETCH_STATUS = 0     BEGIN         PRINT @UserId; --打印数据(打印MemberAccount表中的UserId)         
UPDATE dbo.MemberService SET ServiceTime = DATEADD(Month, 6, getdate()) WHERE UserId = @UserId; --更新数据         
FETCH NEXT FROM My_Cursor INTO @UserId; --读取下一行数据(将MemberAccount表中的UserId放到@UserId变量中)     
END CLOSE My_Cursor; --关闭游标
DEALLOCATE My_Cursor; --释放游标
GO
----------------------------------------------------------

Oracle常用SQL函数整理的更多相关文章

  1. oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数

        花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...

  2. oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数

    花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用oracle用 ...

  3. ORACLE 常用字符函数

    ORACLE 常用字符函数1 ASCII(arg1)返回参数arg1的十进制数字表示.如果数据库设置为ASCII,则采用的是ASCII码字符.如果设置为EBCDIC,则采用的是EBCDIC字符 sel ...

  4. oracle的sql函数

    只读事务set transaction read only当一个用户添加了只读事务,则查询时只会查到设置只读事务之前的内容,在并发量大的系统中,通过设置只读事务 便于统计 oracle的sql函数的使 ...

  5. oracle常用SQL语句(汇总版)

    Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...

  6. oracle 常用sql语句

    oracle 常用sql语句 1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom d ...

  7. 常用sql语句整理:mysql

    ## 常用sql语句整理:mysql1. 增- 增加一张表```CREATE TABLE `table_name`(  ...  )ENGINE=InnoDB DEFAULT CHARSET=utf8 ...

  8. 常用SQL函数

    —————常用SQL函数(实例简述)————— 数据库环境:DB2数据库: 执行工具:Toad for  DB2 1.转字符串:to_char() 日期类型:to_char(birthday,'yyy ...

  9. 常用WinAPI函数整理------------转载

    常用WinAPI函数整理原创 玩撕你 发布于2019-09-04 20:06:55 阅读数 101 收藏展开 之前的博客写了很多关于Windows编程的内容,在Windows环境下的黑客必须熟练掌握底 ...

随机推荐

  1. word-wrap ,word-break 和white-space 的联系

    在工作中我遇到一个问题,其实功能也不复杂,就是上面有个textarea标签 ,里面输入内容,下面有个显示效果 ,有个条件就是 上面输入的什么格式(比如换行等等),下面显示的也是 什么格式.如下图: 这 ...

  2. 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)

    前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...

  3. 调用AJAX做登陆和注册

    先建立一个页面来检测一下我们建立的用户名能不能用,看一下有没有已经存在的用户名吗 可以通过ajax提示一下 $("#uid").blur(function(){ //取用户名 va ...

  4. MVC5+EF6+MYSQl,使用codeFirst的数据迁移

    之前本人在用MVC4+EF5+MYSQL搭建自己的博客.地址:www.seesharply.com;遇到一个问题,就是采用ef的codefirst模式来编写程序,我们一般会在程序开发初期直接在glob ...

  5. .NET Core的日志[3]:将日志写入Debug窗口

    定义在NuGet包"Microsoft.Extensions.Logging.Debug"中的DebugLogger会直接调用Debug的WriteLine方法来写入分发给它的日志 ...

  6. 用scikit-learn学习BIRCH聚类

    在BIRCH聚类算法原理中,我们对BIRCH聚类算法的原理做了总结,本文就对scikit-learn中BIRCH算法的使用做一个总结. 1. scikit-learn之BIRCH类 在scikit-l ...

  7. Consul 服务注册与服务发现

    上一篇:Mac OS.Ubuntu 安装及使用 Consul 1. 服务注册 对 Consul 进行服务注册之前,需要先部署一个服务站点,我们可以使用 ASP.NET Core 创建 Web 应用程序 ...

  8. css居中div的几种常用方法

    在开发过程中,很多需求需要我们居中一个div,比如html文档流当中的一块div,比如弹出层内容部分这种脱离了文档流等.不同的情况有不同的居中方式,接下来就分享下一下几种常用的居中方式. 1.text ...

  9. 28个你必须知道的HTML5的新特性,技巧以及技术

    崭新新的页面布局 传统的: HTML5: 1. 新的Doctype 尽管使用<!DOCTYPE html>,即使浏览器不懂这句话也会按照标准模式去渲染 2. Figure元素 用<f ...

  10. docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用

    .net猿遇到了小鲸鱼,觉得越来越兴奋.本来.net猿只是在透过家里那田子窗看外面的世界,但是看着海峡对岸的苹果园越来越茂盛,实在不想再去做一只宅猿了.于是,.net猿决定搭上小鲸鱼的渡轮到苹果园去看 ...