思维导图

一.基础语法
1.查询所有列或者特定列
--查询订单产品,产品品名资料
SELECT oeb04,oeb06 FROM oeb_file;
2.消除重复行
--查询订单产品,产品品名资料,且结果消除重复行(请对比SQL示例1)
SELECT DISTINCT oeb04,oeb06 FROM oeb_file;
3.使用算术表达式(+,-,*,/)以及别名
--as指定列别名(列别名也可以不使用as,直接在查询列后面指定即可)
--SQL中使用乘法运算*
SELECT oeb01 as "订单单号", oeb04 as "订单产品",
oeb06 as "产品品名",oeb12*oeb13 as "订单金额"
FROM oeb_file
4.使用nvl函数处理算术表达式运算栏中的空值问题
如果查询的栏位参与+ - / *算术运算,只要参与运算的栏位有一个为空值,则会导致整个运算结果为空值。
nvl(expr1,expr2)如果expr1不为空,则返回expr1,否则返回expr2;expr1与expr2可以是任意数据类型,但是expr1与expr2需是相同的数据类型
nvl2(expr1,expr2,expr3)如果expr1不为空,则返回expr2,否则返回expr3;expr1可以是任意数据类型,但是expr2与expr3需是相同的数据类型
-- 用nvl函数处理空值问题 ,ta-oeb013 为本司客制栏位冲销数量,值为空
SELECT oeb01 as "订单单号", oeb04 as "订单产品",
oeb06 as "品名",oeb12-oeb24-nvl(ta_oeb013,0) as "订单未交量"
FROM oeb_file
-- 用nvl2函数处理空值问题 ,ta-oeb013 为本司客制栏位冲销数量,值为空
SELECT oeb01 as "订单单号", oeb04 as "订单产品",oeb06 as "品名",
nvl2(ta_oeb013,oeb12-oeb24-ta_oeb013,oeb12-oeb24) as "订单未交量"
FROM oeb_file
5.where条件子句
常用的WHERE条件如下:
- 比较操作符: 等于:=,不等于:<>,!=,大于:> , 大于或等于:>= ,小于或等于:<=,小于:<
- 匹配于列表值:IN( ) ,EXISTS()
- 在两值之间:BETWEEN .. AND ..
- 测试是否为NULL:IS NULL (注意:"没有空格"、"一个或多个空格" 与 IS NULL 是不同的)
- 匹配于字符样式:LIKE,执行模糊查询需要使用LIKE,常用LIKE通配符如下:
%:匹配0个或多个字符
_ :匹配单个字符
注意:如果模糊查询本身要查的栏位资料里面包含有'%'或'_'字符时,则需要使用转义字符ESCAPE
如果某值是空则并不能用LIKE "%"匹配的到,写SQL查异常这点经常出错
- 常用的WHERE条件逻辑操作符:逻辑与:AND,逻辑或:OR,取反:NOT
--查询Tiptop GP用户账号中带有'_'下划线的用户信息,escape用'a'做转义字符且2011/03月期间开通的账号
SELECT * FROM zx_file
WHERE zx03 = '2G69'
AND zx01 LIKE '%a_%' ESCAPE 'a'
AND zxdate BETWEEN to_date('2011/03/01','YYYY/MM/DD') AND DFSto_date('2011/03/31','YYYY/MM/DD')
6.分组 GROUP BY
Oracle数据分组通过使用GROUP BY子句指定要分组的列
使用分组函数如COUNT、AVG、SUM、MAX、MIN等显示统计结果
使用HAVING子句限制分组显示结果(注意:having后面必须接分组函数)
- 如果查询有分组函数计算,则先将WHERE条件符合的资料计算,HAVING子句只是显示分组显示的结果,不参与分组函数的 计算
- 常用分组函数:
COUNT:取得行数
MAX:取

本文详细介绍了Oracle SQL中的基础语法,包括SELECT语句的各种用法,如查询特定列、分组函数、连接查询、子查询和合并查询。此外,还讨论了复杂的CASE语句和树形查询,提供了相关语法和示例。
-----select语句&spm=1001.2101.3001.5002&articleId=81158141&d=1&t=3&u=7d18c96f38214ef8931c0fc580d3b36e)
3120

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



