学习SQL日记(二)

#1. 查询语句中使用函数 

  @1. round(d1,d2)  用于数字的四舍五入 d1表示数字 d2表示小数点后的位数 (d2不写 默认为零)

  @2. trunc(d1,d2) 截取  去尾法

  @3. 日期函数 sysdate

    select sysdate from dual; ----获取系统当前时间

  @4. 日期数据相减,得到两个日期之间的天数差 不足一天用小数表示

  @5.months_between(d1,d2)  得到d1 ,d2两个日期数据之间所差的月份 小数表示

  @6.计算d2个月之前的时间点  add_months(d1,d2) d1为日期函数 d2 为月数

  @7.计算本月最后一天  last_day(sysdate) from dual;

  @8.转换函数  to_char(日期数据,格式)  把日期数据转换成字符数据

      select  to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘) from dual;

    转换函数  to_date() 将字符串数据 按指定格式 转换为 日期数据

  @9. 函数coalesce(参数列表) 返回参数列表中第一个非空参数  参数列表中最后一个值通常    是常量

  @10.case 语句  是数据中的分支语句 相当于Java中的switch-case语句

  @11.decode函数 **
    decode()函数是Oracle 中等价于case when语句的函数 , 作用同case 语句相同。       decode 函数语法如下: decode(判断条件 , 匹配1 , 值1 , 匹配2 , 值2 , …  , 默认值)     表达的意思是:如果判断条件 = 匹配1 ,  则迒回值1             判断条件 = 匹配2 ,  则    迒回值2

时间: 2024-10-25 00:58:36

学习SQL日记(二)的相关文章

学习SQL日记(一)

写一下总结吧 总是学了就忘. 11.01 重新学习SQL -------Oracle #1. column format 通过使用COLUMN命令  可以控制查询结果集中列的显示格式. 语法格式:column[column_name  alias option] column_name参数用于指定将要控制的列的名称 alias 参数用于指定列的别名 option参数用于指定某个列的显示格式 option选项的部分取值及意义 clear 清除为该列设置的显示属性,使其使用默认的显示属性 color

学习SQL日记(五)

①where 子句里面根据传入参数 决定使用哪一个条件 SQL> select 1 from dual where decode(1,1,1,0)=1; SQL> select 1 from dual where (case when 1=1 then 1 else 0 end) = 1;

学习SQL日记(六)

①ORACLE 层次查询 --(递归语句)--(查询树状结构) select × from  table start with table.col1 = '001' --根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树. onnect by proir col1 = parent_id   ---上一条语句中的col1 = 本条记录的parent_id 扫描树结构表时,需要依此访问树结构的每个节点,一个节点只能访问一次,其访问的步骤如下:      第一步:从根节点开始:

学习SQL日记(七)

Ⅰ.在存储过程中使用游标 ①声明游标 CURSOR CUR_EMP IS SELECT * FROM EMP ; ②打开游标 ③循环取数 ④设置退出条件 ⑤关闭循环 ⑥关闭游标 CREATE OR REPLACE PROCEDURE PRO_EMP_TEST IS EMP_T EMP%ROWTYPE; CURSOR CUR_EMP IS SELECT * FROM EMP ; BEGIN OPEN CUR_EMP; LOOP FETCH CUR_EMP INTO EMP_T ; EXIT WHE

学习SQL日记(八)--ORACLE CASE WHEN

Ⅰ. ORACLE  WHERE 字句里面使用CASE WHEN 25行 Ⅱ.  嵌套使用 CASE WHEN  2~13行 1 SELECT 2 SUM(CASE WHEN M.MV_AVG < 800 AND C.THICKNESS >= 0.5 AND C.THICKNESS <= 0.9 THEN (CASE WHEN D.MV_AVG = 0 OR D.MV_AVG IS NULL THEN 0 ELSE P.LENGTH / D.MV_AVG END ) END ) R1CD

学习SQL日记(三)

#1. 系统日期 .时间函数 ^1.SELECT TO_CHAR (SYSDATE ,'YYYY-MM-DD HH24:MI:SS') FROM DUAL -- 查询系统当前日期 ^2.SELECT SYSTIMESTAMP FROM DUAL --查询带时区的系统日期 ^3.SELECT DBTIMEZONE FROM DUAL --查询当前时区 SELECT SESSIONTIMEZONE FROM DUAL--查询当前会话的时区 ^4.SELECT TO_CHAR(ADD_MONTHS(T

学习SQL日记(九)--ORACLE 创建函数

Ⅰ.创建函数 Ⅱ.截取字符串函数 : REGEXP_SUBSTR 1 CREATE OR REPLACE FUNCTION GET_NUM(GALV_COOT VARCHAR2) RETURN NUMBER IS 2 RESULT NUMBER; 3 BEGIN 4 RESULT := TO_NUMBER(REGEXP_SUBSTR(GALV_COOT , '\d{2,3}')); --取字符串里最少两位 最多三位 的数字 5 IF RESULT IS NULL 6 THEN RETURN 0

学习SQL日记(四)

问题① PRODCOILS表里有10000条数据 左连接 另一个表 temp (40000条数据) 得出结果40000条数据  不用想了 40000条里有大量重复数据 为什么有 重复数据  :temp 是 查询结果集  coils 表 连接 steel_grade 用的不是主键 - -! 造成数据重复  使用distinct就能解决

SQL学习分享(二)

1.插入数据 insert into table(id,name) values("","")                                                            ---插入数据到table表中 如:INSERT INTO sms.Communication  ( RefType,RefId,Type,Message,CreateUserId,CreateDate ) values (1,118113,11,'Thi