学习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;

时间: 2024-10-31 00:49:04

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

学习SQL日记(一)

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

学习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. 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个月

学习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就能解决

我的MYSQL学习心得(五)

我的MYSQL学习心得(五) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) MYSQL中的运算符很多,这一节主要讲MYSQL中有的,而SQLSERVER没有的运算符 安全等于运算符(<=>) 这个操作符和=操作符执行相同的比较操作,不过<=>可以用来判断NULL值. 在两个操作数均为NULL时,其返回值为1而不为NULL: 而当一个操作数为NULL时,其返回值为0而不为NULL. 下面分别是 SELECT N