Oracle(1)-----select语句

本文详细介绍了Oracle SQL中的基础语法,包括SELECT语句的各种用法,如查询特定列、分组函数、连接查询、子查询和合并查询。此外,还讨论了复杂的CASE语句和树形查询,提供了相关语法和示例。

思维导图

一.基础语法

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:取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值