--查询所有

 select * from emp;
select * from emp where comm is null;

--错误表达

 --select * from emp where comm = null;

--其他有关null的返回结果

 select replace('abcde','a',null) as str from dual;
select greatest(1,null) from dual;

/*结论:遇到null最好先测试一下,不能臆想猜测*/

--coalesce函数

 SELECT coalesce(comm,0) FROM emp;

--上述例子中coalesce与nvl函数起同样作用,但coalesce函数更好用,支持更多参数,能很方便地返回第一个不为空的值

 CREATE OR REPLACE VIEW v AS
SELECT NULL AS c1,NULL AS c2,'' AS c3,NULL AS c4,'' AS c5,NULL AS c6 FROM dual UNION ALL
SELECT NULL AS c1,NULL AS c2,NULL AS c3,'' AS c4,NULL AS c5,'' AS c6 FROM dual;
SELECT * FROM v;
SELECT COALESCE(c1,c2,c3,c4,c5,c6) AS c FROM v;

--key:别名

--desc:可以为结果集的列指定别名,用AS或空格紧跟。
SELECT 姓名 FROM (SELECT ename 姓名,comm AS 提成 FROM emp) WHERE 提成 IS NULL;
--summary:使用别名当筛选条件需要在外面嵌套一层
--key:拼接
--desc:concat和||都可以拼接字段

 SELECT ename || '的工作是' ||job AS msg FROM emp WHERE deptno=20;
SELECT concat('姓名:',ename) AS msg FROM emp WHERE deptno=20;

--summary:concat可以拼接两个字段,使用||可以拼接多重字段

--key:生成sql
--desc:用sql生成sql

 DROP TABLE test_concat PURGE;
CREATE TABLE test_concat AS
SELECT table_name,
'N_' || table_name AS new_tbl_name,
column_name,
'new_' || column_name AS new_col_name
FROM all_tab_cols
WHERE owner = 'SCOTT';

/*博客链接*/

 DECLARE v_sql CLOB;
BEGIN
FOR cur IN (SELECT 'CREATE OR REPLACE VIEW ' || new_tbl_name || ' as ' || chr(10) ||
'select ' || chr(10) ||
wmsys.wm_concat(column_name || ' as ' || new_col_name || chr(10)) ||
'from scott.' || table_name AS create_view
FROM test_concat
GROUP BY table_name,new_tbl_name)
LOOP
v_sql := cur.create_view;
EXECUTE IMMEDIATE v_sql;
END LOOP;
END;

--key:条件逻辑

--desc:case when

 SELECT (CASE
WHEN sal<1000 THEN '0000-1000'
WHEN sal<=2000 THEN '1000-2000'
ELSE '好高' END) AS 提成
FROM emp;

--key:rownum

--desc:限制返回行数

 SELECT * FROM emp WHERE ROWNUM<=3 ORDER BY sal DESC;

--upgrade

 SELECT * FROM (SELECT ROWNUM rn ,emp.* FROM emp WHERE ROWNUM<=3) WHERE rn=2;

--summary:并不能通过order by和rownum的配合得到排名

--key:随机
--desc:随机抽查3行数据

 SELECT empno,ename FROM (SELECT dbms_random.value(),empno,ename FROM emp ORDER BY dbms_random.value()) WHERE ROWNUM <= 3;

/*summary:必须嵌套使用,否则直接使用并不能得到随机效果:

 SELECT dbms_random.value(),empno,ename FROM emp where rownum <=3 ORDER BY dbms_random.value()

因为查询语句中执行的顺序是:!.select 2.rownum 3.order by

所以,在order by执行之前,前三行已经定了,随后对已选定的三行进行随机显示而已*/
--key:模糊查询
--desc:模糊查询及转义字符的使用
--prep:

 CREATE OR REPLACE VIEW v AS SELECT 'ABCEDF' AS vname FROM dual
UNION ALL
SELECT '_BCEFG' AS vname FROM dual
UNION ALL
SELECT '_BCEDF' AS vname FROM dual
UNION ALL
SELECT '_\BCEDF' AS vname FROM dual
UNION ALL
SELECT 'XYCEG' AS vname FROM dual
SELECT * FROM v;

--查询包含CED的行

 SELECT * FROM v WHERE vname LIKE '%CED%';

--查询包含_BCE的行

 SELECT * FROM v WHERE vname LIKE '%_BCE%';--ABCEDF和_\BCEDF并不是想要的结果,因为_被当做通配符了
SELECT * FROM v WHERE vname LIKE '%\_BCE%' ESCAPE '\';--escape是用来定义转义字符的,只有定义了才有效果,也可以定义成其他,如*、/等

最新文章

  1. node.js + mongodb 做项目的详解(一)
  2. Java类加载和类反射回顾
  3. MyEclipse 8.5整合Git,并在Github上发布项目【转】
  4. BZOJ-2186 沙拉公主的困惑 线性筛(筛筛筛)+线性推逆元
  5. CodeIgniter - 数据库的增删改查
  6. 使用工具追踪Entity Framework生成的SQL
  7. [Java] MAP、LIST、SET集合解析
  8. WPF——菜单栏及TabControl
  9. WPF的依赖属性
  10. nginx install lua module
  11. 安卓自定义view_GDI绘图 _2d绘图_canvas绘图
  12. java线程(三)
  13. 【APP问题定位(二)】Charles定位工具
  14. Undoing Merges
  15. HTTP中GET和POST的区别主要是那些,面试中可以加分的该说那些?
  16. [原创]iFPGA-USB2.0 FT2232H USB &amp; UART开发板使用说明
  17. html跳动的心实现代码
  18. CheckTimeWait.bat实现windows下的TimeWait检查
  19. STM32CubeMX介绍、下载与安装
  20. csv2txt.cpp

热门文章

  1. 鼠标经过显示二级菜单的js特效
  2. svn导出历史版本
  3. winphone开发环境配置
  4. angular学习笔记(五)-阶乘计算实例(1)
  5. gnome3增加自定义程序快捷方式
  6. GNU风格 ARM汇编语法1
  7. asp.net mvc 5 在没有外网win2008R2服务器部署方法
  8. 【查询优化】怎样用SQL语句查看查询的性能指标
  9. C++基础学习-20120518
  10. ios的一些经验记录1