SQL> --字符函数
SQL> select lower('Hello WORLd') 转小写,upper('Hello WORLd') 转大写,
2 initcap('hello world') 首字母大写
3 from dual;
转小写 转大写 首字母大写
----------- ----------- -----------
hello world HELLO WORLD Hello World
SQL> --substr(a,b) 从a中,第b位开始取,取右边所有的字符
SQL> select substr('hello world',3) from dual;
SUBSTR('H
---------
llo world
SQL> --substr(a,b,c) 从a中,第b位开始取,取c位
SQL> select substr('hello world',3,4) from dual;
SUBS
----
llo
SQL> host cls
SQL> --length 字符数 lengthb 字节数
SQL> select length('hello world') 字符数,lengthb('hello world') 字节数
2 from dual;
字符数 字节数
---------- ----------
11 11
SQL> ed
已写入 file afiedt.buf
1 select length('中国') 字符数,lengthb('中国') 字节数
2* from dual
SQL> /
字符数 字节数
---------- ----------
2 4
SQL> host cls
SQL> --instr(a,b) 从a中查找b,找到返回下标,否则返回0
SQL> select instr('hello world','ll') from dual;
INSTR('HELLOWORLD','LL')
------------------------
3
SQL> --提示:第二天的课后作业
SQL> host cls
SQL> --lpad 左填充 rpad右填充
SQL> select lpad('abcd',10,'*') 左,rpad('abcd',10,'*') 右
2 from dual;
左 右
---------- ----------
******abcd abcd******
SQL> --trim: 去掉前后指定的字符(只是前后)
SQL> select trim('H' from 'Hello WorldH') from dual;
TRIM('H'FR
----------
ello World
SQL> --replace 替换
SQL> select replace('hello world','l','*') from dual;
REPLACE('HE
-----------
he**o wor*d
SQL> host cls
SQL> --四舍五入
SQL> select ROUND(45.926, 2) 一,ROUND(45.926, 1) 二,ROUND(45.926, 0) 三,
2 ROUND(45.926, -1) 四, ROUND(45.926, -2) 五
3 from dual;
一 二 三 四 五
---------- ---------- ---------- ---------- ----------
45.93 45.9 46 50 0
SQL> ed
已写入 file afiedt.buf
1 select TRUNC(45.926, 2) 一,TRUNC(45.926, 1) 二,TRUNC(45.926, 0) 三,
2 TRUNC(45.926, -1) 四, TRUNC(45.926, -2) 五
3* from dual
SQL> /
一 二 三 四 五
---------- ---------- ---------- ---------- ----------
45.92 45.9 45 40 0
SQL> host cls
SQL> --日期函数
SQL> select sysdate from dual;
SYSDATE
--------------
19-6月 -13
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2013-06-19 14:22:23
SQL> select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss:ff') from dual;
TO_CHAR(SYSTIMESTAMP,'YYYY-MM
-----------------------------
2013-06-19 14:23:22:000000
SQL> select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss:ff') from dual;
TO_CHAR(SYSTIMESTAMP,'YYYY-MM
-----------------------------
2013-06-19 14:23:24:843000
SQL> --昨天 今天 明天
SQL> select (sysdate-1) 昨天, sysdate 今天,(sysdate+1) 明天
2 from dual;-
昨天 今天 明天
-------------- -------------- --------------
18-6月 -13 19-6月 -13 20-6月 -13
SQL> host cls
SQL> --计算员工的工龄(误差大,只是大约值)
SQL> select ename,hiredate,(sysdate-hiredate) 天, (sysdate-hiredate)/7 星期,
2 (sysdate-hiredate)/30 月,(sysdate-hiredate)/365 年
3 from emp;
ENAME HIREDATE 天 星期 月 年
---------- -------------- ---------- ---------- ---------- ----------
SMITH 17-12月-80 11872.6018 1696.08597 395.753392 32.5276761
ALLEN 20-2月 -81 11807.6018 1686.80025 393.586725 32.3495939
WARD 22-2月 -81 11805.6018 1686.51454 393.520059 32.3441144
JONES 02-4月 -81 11766.6018 1680.94311 392.220059 32.2372651
MARTIN 28-9月 -81 11587.6018 1655.37168 386.253392 31.7468541
BLAKE 01-5月 -81 11737.6018 1676.80025 391.253392 32.157813
CLARK 09-6月 -81 11698.6018 1671.22882 389.953392 32.0509637
SCOTT 13-7月 -87 703435.602 100490.8 23447.8534 1927.22083
KING 17-11月-81 11537.6018 1648.22882 384.586725 31.6098678
TURNER 08-9月 -81 11607.6018 1658.22882 386.920059 31.8016487
ADAMS 13-7月 -87 703435.602 100490.8 23447.8534 1927.22083
已选择14行。
SQL> select sysdate+hiredate from emp;
select sysdate+hiredate from emp
*
第 1 行出现错误:
ORA-00975: 不允许日期 + 日期
SQL> host cls
SQL> --last_day 日期所在月份的最后一天
SQL> select last_day(sysdate) from dual;
LAST_DAY(SYSDA
--------------
30-6月 -13
SQL> --MONTHS_BETWEEN 返回两个日期相差的月数,两种方法比较
SQL> select ename,hiredate,(sysdate-hiredate)/30 一,MONTHS_BETWEEN(sysdate,hiredate) 二
2 from emp;
ENAME HIREDATE 一 二
---------- -------------- ---------- ----------
SMITH 17-12月-80 395.753475 390.084008
ALLEN 20-2月 -81 393.586809 387.987234
WARD 22-2月 -81 393.520142 387.922718
JONES 02-4月 -81 392.220142 386.567879
MARTIN 28-9月 -81 386.253475 380.72917
BLAKE 01-5月 -81 391.253475 385.600137
CLARK 09-6月 -81 389.953475 384.342073
SCOTT 13-7月 -87 23447.8535 23111.213
KING 17-11月-81 384.586809 379.084008
TURNER 08-9月 -81 386.920142 381.374331
ADAMS 13-7月 -87 23447.8535 23111.213
ENAME HIREDATE 一 二
---------- -------------- ---------- ----------
JAMES 03-12月-81 384.053475 378.535621
FORD 03-12月-81 384.053475 378.535621
MILLER 23-1月 -82 382.353475 376.89046
已选择14行。
SQL> --ADD_MONTHS: 加上若干个月
SQL> select ADD_MONTHS(sysdate,100) from dual;
ADD_MONTHS(SYS
--------------
19-10月-21
SQL> host cls
SQL> --next_day
SQL> select next_day(sysdate,'星期三') from dual;
NEXT_DAY(SYSDA
--------------
26-6月 -13
SQL> select next_day(sysdate,'星期四') from dual;
NEXT_DAY(SYSDA
--------------
20-6月 -13
SQL> host cls
--日期的大约值,当前日期为:19-6月 -13
--month + 1要满足day > 15 year+1 要满足month > 7
SQL> select round(sysdate,'month'), round(sysdate,'year') from dual;
ROUND(SYSDATE, ROUND(SYSDATE,
-------------- --------------
01-7月 -13 01-1月 -13
SQL> --隐式转换的前提: 被转换对象是可以转换的
SQL> --显式转换
SQL> --显示当前时间: 2013-06-19 14:45:23今天是星期三
SQL> --在格式前面加入自定义的字符串
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss"今天是" day') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDHH24:MI:
-----------------------------------
2013-06-19 14:46:59今天是 星期三
SQL> -- L表示当前的货币,在v$nls_parameters可以查到
SQL> --查询员工薪水: 两位小数 货币代码 千位符
SQL> select to_char(sal,'L9,999.99') from emp;
TO_CHAR(SAL,'L9,999
-------------------
¥800.00
¥1,600.00
¥1,250.00
¥2,975.00
¥1,250.00
¥2,850.00
¥2,450.00
¥3,000.00
¥5,000.00
¥1,500.00
¥1,100.00
已选择14行。
SQL> host cls
SQL> --通用函数
SQL> --nvl2(a,b,c) 当a=null时,返回c,否则返回b
SQL> select sal*12+nvl2(comm,comm,0) from emp;
SAL*12+NVL2(COMM,COMM,0)
------------------------
9600
19500
15500
35700
16400
34200
29400
36000
60000
18000
13200
已选择14行。
SQL> --NULLIF(a,b) 当a=b时, 返回null,否则返回a
SQL> select nullif('abc','abc') from dual
2 ;
NUL
---
SQL> select nullif('abc','abcd') from dual;
NUL
---
abc
SQL> --COALESCE :从左往右找到第一个不为null的值
SQL> select comm,sal,COALESCE(comm,sal) from emp;
COMM SAL COALESCE(COMM,SAL)
---------- ---------- ------------------
800 800
300 1600 300
500 1250 500
2975 2975
1400 1250 1400
2850 2850
2450 2450
3000 3000
5000 5000
0 1500 0
已选择14行。
SQL> host cls
SQL> --条件表达式
SQL> --涨工资,总裁1000 经理800 其他400
SQL> select ename,job,sal 涨前薪水,
2 case job when 'PRESIDENT' then sal+1000
3 when 'MANAGER' then sal+800
4 else sal+400
5 end 涨后薪水
6 from emp;
ENAME JOB 涨前薪水 涨后薪水
---------- --------- ---------- ----------
SMITH CLERK 800 1200
ALLEN SALESMAN 1600 2000
WARD SALESMAN 1250 1650
JONES MANAGER 2975 3775
MARTIN SALESMAN 1250 1650
BLAKE MANAGER 2850 3650
CLARK MANAGER 2450 3250
SCOTT ANALYST 3000 3400
KING PRESIDENT 5000 6000
TURNER SALESMAN 1500 1900
ADAMS CLERK 1100 1500
已选择14行。
SQL> select ename,job,sal 涨前薪水,
2 decode(job,'PRESIDENT',sal+1000,
3 'MANAGER',sal+800,
4 sal+400) 涨后薪水
5 from emp;
ENAME JOB 涨前薪水 涨后薪水
---------- --------- ---------- ----------
SMITH CLERK 800 1200
ALLEN SALESMAN 1600 2000
WARD SALESMAN 1250 1650
JONES MANAGER 2975 3775
MARTIN SALESMAN 1250 1650
BLAKE MANAGER 2850 3650
CLARK MANAGER 2450 3250
SCOTT ANALYST 3000 3400
KING PRESIDENT 5000 6000
TURNER SALESMAN 1500 1900
ADAMS CLERK 1100 1500
已选择14行。
SQL> --工资调整,如果大于2000,就减去1000,大于1000,减去100,其他加上10000
SQL> select ename , sal 公司调整前 ,
2 case
3 when sal>2000 then sal-1000
4 when sal>1000 then sal-100
5 else sal+10000
6 end 工资调整后
7 from emp;
ENAME 公司调整前 工资调整后
---------- ---------- ----------
SMITH 800 10800
ALLEN 1600 1500
WARD 1250 1150
JONES 2975 1975
MARTIN 1250 1150
BLAKE 2850 1850
CLARK 2450 1450
SCOTT 3000 2000
KING 5000 4000
TURNER 1500 1400
ADAMS 1100 1000
JAMES 950 10950
FORD 3000 2000
MILLER 1300 1200
已选择14行。
--SELECT CASE WHEN 的用法
--select 与 case结合使用最大的好处有两点,
--一是在显示查询结果时可以灵活的组织格式,
--二是有效避免了多次对同一个表或几个表的访问。
--下面举个简单的例子来说明。例如表 students(id, name ,birthday, sex, grade),
--要求按每个年级统计男生和女生的数量各是多少,统计结果的表头为,年级,男生数量,女生数量。
--如果不用select case when,为了将男女数量并列显示,
--统计起来非常麻烦,先确定年级信息,再根据年级取男生数和女生数,而且很容易出错。
--用select case when写法如下:
SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男生,2位女生*/
ELSE NULL
END) 男生数,
COUNT (CASE WHEN sex = 2 THEN 1
ELSE NULL
END) 女生数
FROM students GROUP BY grade;
--count(字段)该函数只统计只将有值得字段+1,null不管
SQL> spool off
相关推荐
VMware17安装教程(附安装包)VMware17小白详细一键安装教程
VMware 17.5 是一款强大的虚拟机软件。本安装教程将为您详细介绍VMware17安装教程其下载、安装步骤及验证方法,助您轻松完成安装,开启虚拟化体验。
Spark SQL函数 对比 Oracle SQL函数 备忘录
0、逻辑查询的各个阶段 执行顺序 T-SQL逻辑查询的各个阶段(编号代表顺序) (5)SELECT DISTINCT TOP(<top_specification>) <select_list> (1)FROM <left_table> <join_type> JOIN <right_table> ON <on_predicate> (2)WHERE <where_predicate&
宝塔面板一键部署Z-Blog博客 - 内网穿透实现公网访问
Ubuntu系统作为Linux系统的一个重要分支,既有Linux系统的轻量化、高扩展性和长时间稳定运行,也拥有Windows一样的友好图形界面,因此可以作为熟悉服务器系统的良好选择。对于笔者来说,ubuntu系统最大的用处,就是可以让家里老旧的电脑重焕生机,让本已退居二线的电脑与cpolar内网穿透软件搭配,成为私人服务器,搭建自己喜欢的各种网站。今天,笔者就为大家介绍,如何使用cpolar内网穿透+Z-blog搭建私人博客网站。
Oracle中的数组以及table()函数的使用备忘录
首先转下数组的基本方法
Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting 论文笔记
Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting 论文笔记-----GCN在交通领域的应用(二) 一、论文翻译: 1、摘要: 及时准确地交通预测对于城市交通控制和指导具有至关重要的意义。由于交通流量的非线性和复杂性,传统的方法不能满足中长期预测任务的需求,并且往往会忽略时空数据的时间和空间依赖特性。在这篇论文中,为了处理在交通领域的时间序列预测问题...
手把手教你用差分放大电路搭建LC振荡器(实测频率误差分析)
本文通过一个差分放大电路搭建LC振荡器的实践案例,深入分析了实测频率与理论值产生显著误差的原因。核心在于共模电感的互感效应改变了谐振回路的等效电感,导致频率偏差。文章提供了从电路搭建、误差根源剖析到波形优化与稳定性提升的完整解决方案,帮助电子爱好者深入理解模拟电路的实际行为。
android毕业设计_备忘录系统
基于android的备忘录系统mysql数据库创建语句 基于android的备忘录系统oracle数据库创建语句 基于android的备忘录系统sqlserver数据库创建语句 基于android的备忘录系统spring+springMVC+hibernate框架对象(javaBean,pojo)设计 基于android的备忘录系统spring+springMVC+mybatis框架对象(java...
Zemax 中的 LED 阵列模型
这些光线是所有光线的子集,用于布局可视化,而不是详细分析。X 和 Y 散度(αx 和 αy)以度为单位,以不同的方式设置为 6 度和 12 度。每个 LED 都以朗伯模式(广角分布)发光,尽管有些 LED 具有内置光学元件,用于更窄或更聚焦的光束。,具体取决于这些类别中使用的半导体材料。LED 阵列由多个发光二极管 (LED) 组成,这些二极管以特定模式或配置排列,以实现均匀照明、更高强度或特定照明特性。如果数据的存在更改为“辐射强度”,则它以弧度为单位显示每个立体角的功率,作为探测器上入射角的函数。
负载均衡连接方法oracle,oracle 负载均衡连接方式常用SQL语句备忘录
1.---表中有重复记录用SQL语句查询出来select * from Recharge where RechargeSerial in (select RechargeSerial from Recharge group by RechargeSerial having count(*)>1)2.oracle des加密函数方法create or replace function encr...
【基础演练】Playwright 极简复习:作为 AI-RPA 底座的 Playwright 核心用法
摘要: 2026年,Playwright已从测试工具升级为AI-RPA标准执行底座,周下载量超3300万,被browser-use等AI Agent项目广泛采用。其核心架构通过Playwright Server实现多浏览器协议适配,支持远程连接与高并发隔离(BrowserContext)。自动等待机制显著提升稳定性,但高频交互场景可能需直接使用CDP协议。Playwright凭借跨浏览器兼容性、轻量级隔离和微软官方支持,成为测试、RPA和AI Agent领域的事实标准,未来将主导对话式自动化市场。
论文翻译:2024 High-Confidence Computing A survey on large language model (LLM) security and privacy: The
大型语言模型(LLMs),如ChatGPT和Bard,已经彻底改变了自然语言理解和生成。它们具有深度语言理解能力、类似人类的文本生成能力、上下文意识和强大的问题解决技能,使它们在各个领域(例如搜索引擎、客户支持、翻译)中变得不可或缺。同时,LLMs也在安全领域获得了关注,揭示了安全漏洞并展示了它们在安全相关任务中的潜力。本文探讨了LLMs与安全性和隐私的交集。具体来说,我们研究了LLMs如何积极影响安全性和隐私,与它们使用相关的潜在风险和威胁,以及LLMs内部的固有漏洞。
Oracle Pl/sql 配置备忘录
PL/SQL配置: 注意:请下载最新的oracle instant客户端..有些pl/sql Developer不支持老版本的.. 还有种情况是原来装过oracle客户端..再用pl/sql的..配置的客户端地址可能不起效果..需要确定pl/sql指定的oracle目录到底是那个 可以通过连接不存在的 数据库sid...弹出错误中可以显示 找不到d:\oracleclient\tnsna...
基于GA-BP遗传算法优化神经网络的多输入多输出数据预测-Python代码实现
多输入多输出的GA-BP神经网络
DBA工作备忘录之三:rman备份,未使用catalog,控制文件丢失的解决办法
[Oracle] DBA工作备忘录之三:rman备份,未使用catalog,控制文件丢失的解决办法 作者:Fenng 日期:July 19 2004 情况描述客户报告数据库故障,新来的系统管理员误操作。删掉了一些文件。询问:删掉了那些文件?答曰:所有重要数据文件,所有控制文件。数据库原来是归档模式,用rman备份数据,rman 使用控制文件。幸运的是,最后一次rman full 备份是包
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
Oracle sql 函数备忘录--Model
Oracle的 MODEL 查询 注: 以下操作仅限于 Oracle 10g (含) 以上版本可用。 首先先造测试表/测试数据 SQL> CREATE TABLE SALE_REPORT ( 2 SALE_DATE DATE NOT NULL , 3 SALE_ITEM VARCHAR(2) NOT NULL , 4 SALE_MONEY
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
ORACLE、MYSQL数据库基础知识备忘录
ORACLE 1、单引号包含的是char/varchar2字符串,区分大小写;另外,双引号包含的是对象名,也区分大小写(默认是大写) to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') 不能用to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') 原因是在to...
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
oracle安装备忘录
先安装vmwaretools双击解压缩即可。。
Oracle Olap开发备忘录
以前曾开发了基于Oracle Olap服务的应用,趁着没有完全忘记赶紧记录下来。1、很早以前就针对Oracle 8里面的Express Server作了开发,当时是使用dml的C接口,在Java里面通过JNI访问,虽然只有一个命令接口,但是着实费力,同时JNI对J2EE Application Server也有所影响。2、这一次支持的是Oracle 9i与10g 的Olap Server,
oracle 内置函数备忘录
这两天在写oracle包,蛮大的一个,为了方便查找,就丢上来个。黄色是经常用到的,顺便看看对大家有没有帮助。 SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ...
解决Oracle的admin账户创建函数却无法调用的问题备忘录
Oracle用admin账户(DBA)创建一个密码验证函数后,在调用它的时候出现如下问题: 具体原因不明觉厉!!! 解决方案如下: 第一种:利用sys系统管理员账户创建全局函数。 (1)先以系统管理员账户登录 (2)执行如下sql语句: @C:\Users\Dragon\Desktop\My_verify_function.sql;执行结果如下: (3)
oracle spatial运维操作备忘录,持续更新中……
oracle spatial运维操作备忘录,持续更新中……数据环境创建表空间新建自定义坐标系表的相关操作修改元数据表SRID指向并新建SRID数据库的导入导出通过DBLINK导出dump方式整个用户导出。通过create ...as...导入指定数据 数据环境 创建表空间 1.创建表空间查看用户使用的表空间,分别查询所有用户: select distinct tablespace_name from user_tables; 2.查看一共该用户下有多少表空间: select t.tablespace_na
ORACLE使用备忘录
1.将一个用户SCHEMA下的表的增删查改权限赋予另一个用户 --假设现在要将test_u用户的SCHEMA下的所有表操作权限赋予test_user GRANT ALL ON test_tab TO test_user ;--将test_tab这表的操作权限赋予 test_user 这个用户 REVOKE ALL ON test_tab FROM test_user ;--将test_tab...
oracle备忘录
1.登录linux服务器 执行:su - oracle 执行:sqlplus 用户名/密码 使用dab登录命令,执行:sqlplus / as sysdba dba授权执行:grant dba to QXT_USER; (注:QXT_USER是用户名) 2.查看表空间使用情况 SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", (total - free) "表空间使用大小", total / (1024 * 1024 *
oracle打印数数组函数,Oracle中的数组以及table()函数的使用备忘录
首先转下数组的基本使用方法COUNT 返回集合中元素的个数DELETE 删除集合中所有元素DELETE() 删除元素下标为x的元素,如果x为null,则集合保持不变对VARRAY非法DELETE(,) 删除元素下标从X到Y的元素,如果X>Y集合保持不变对VARRAY非法EXIST() 如果集合元素x已经初始化,则返回TRUE, 否则返回FALSEEXTEND 在集合末尾添加一个元素对Inde...
Oracle总结+备忘录
#网上找到一些资料,当做我的Oracle备忘录吧! 一、Oracle常用命令 1、set linesize 100; 设置长度 2、set pagesize 30; 设置每页显示数目 3、em a.sql 打开记事本 4、@ a 执行文件a中的代码,可指定文件的路径 @d:a.txt 5、conn 用户名/密码 根据用户名和...
Oracle备忘录
◆◆[b][color=red]Oracle10G管理界面登录网址:[/color][/b] http://localhost:1158/em/console/logon http://localhost:5500/em/console/logon ◆◆[b][color=red]Oracle10G查看字符集:[/color][/b] select * fr...
2万+



被折叠的 条评论
为什么被折叠?



