`

复杂查询:where、五个集合函数、order by、group by、having、decode、sign、nvl

 
阅读更多

第一:dql:数据查询语言

1.语法

select 列名 【聚合函数】

from table_name 【 (中括号字面的可以不出现)

where (检索条件,也是过滤(对行))

order by(排序)

group by(分组)(后面这两必须同时出现)

having(也是过滤,但是是对分组的结果过滤) 】

2.where后的条件表达式的运算符:

> < >= <= and or not

in(在...里。in里面是个集合,例如判断某个学生的姓名是否在这里出现过,如果出现了就输出),

not in, is null, is not null(是否空),

like(模糊查询,%表示任意多个任意字符,_表示任意一个字符),

between and(只能比较数字和日期)

3.查询中常用的集合函数(方法的调用,返回一个值(就一个))

(1).max(列名)求最大值

(2).min(列名)求最小值

(3).avg(列名)求平均

(4).sum(列名)求和

(5).count(* or 列名)按照行求总数(这个是按照行算的,以上四个是按照列算的)

4.order by排序:asc(默认)小到大,desc大到小

select ssex from student order by age desc(都可以省略where)

5.group by:

统计男同学的人数,女同学的人数,还有性别为null的人数

(1).select ssex,count(*) from student group by ssex.---注释: (都可以省略where)聚合函数与分组函数在一起时,先分组在统计。

(2). select ssex from student where ssex is not null group by ssex (不合理,因为会先执行where在执行分组)(3). select ssex,count(*) from student group by ssex having count(*>=2)(对分组的结果进行统计)

6.group by中要注意的问题:

select后的列(1.必须出现在group by 。2.select 后的列必须出现在聚合函数中)

自我理解:

(1),如果想查sno,然后在group by 中出现sno,这就能确保查出来的是一个对象。

(2).五个集合函数的返回值都是一个对象(一个值),这样也确保了查询结果只有一个。

 7.nvl()

 nvl1():判断这一列的值是否为空,如果为空就显示我定义的值...(相等于if)

select student sno,sname,nvl(ssex,'密') from student

nvl2():如果为空就显示密,否则显示开....(相等于if else)

select student sno,sname,nvl(ssex,'开','密') from student 8.decode():....(相当于多重if)

8.select decode(2, 1,'a' ,2,'b' ,3,'c','d') from student

例题:select scid,sno,decode(cid, 1,'java' ,2,'oracle' ,3,'javaee') from score

9.sign函数:比较结果,如果是真返回1,假返回-1,相等返回0 例题:select sign(122-100) from dual

 

 

注意:查询中的执行步骤:先分组,在聚合,最后筛选。。。(where ,分组,集合函数,筛选)

 

分享到:
评论

相关推荐

    SQL语句的DECODE和NVL

    NVL 函数是 Oracle 公司提供的一个函数,它可以将 NULL 值转换为指定的值。NVL 函数的语法如下: NVL(ARG, VALUE) 其中,ARG 是要检查的值,VALUE 是要返回的值。如果 ARG 的值为 NULL,那么返回 VALUE。 NVL ...

    关于decode函数的使用

    `decode()`函数还可以与其他函数结合使用,例如`nvl()`和`sign()`函数。 - **`nvl()`函数**:用于处理`NULL`值。如果第一个参数为`NULL`,则返回第二个参数;否则返回第一个参数的值。示例: ```sql SELECT NAME,...

    Oracle中Decode()函数使用技巧

    Decode()函数也可用于GROUP BY、HAVING和ORDER BY子句中,帮助对分组或排序进行条件判断。例如: ``` SELECT DECODE(column, 'value1', 'group1', 'value2', 'group2', 'other') AS group_name, COUNT(*) FROM ...

    oracle中nvl、decode、trim、rtrim的常见用法

    ### Oracle中NVL、DECODE、TRIM、RTRIM的常见用法 #### NVL函数 在Oracle数据库中,NVL函数是一个非常实用的功能,主要用于处理NULL值。其基本语法如下: ``` NVL(expression1, expression2) ``` 其中: - `...

    decode函数.docx

    Decode 函数详解 Decode 函数是一个强大的 Oracle 函数,用于根据条件返回不同的值。它的语法结构为 `decode(条件,值 1,返回值...decode 函数是一个非常有用的 Oracle 函数,能够简化复杂的逻辑运算,并提高开发效率。

    union all与order by用法

    在上面的示例中,我们使用 UNION ALL 将五个 SELECT 语句的结果集合并起来,每个 SELECT 语句都选择三列数据,并且每个列的名称不同。 ORDER BY 的用法 ORDER BY 用于对查询结果进行排序,使用方法是在 SELECT ...

    关于oracle decode函数的用法

    通过以上实例可以看出,DECODE函数在Oracle数据库中是一个非常灵活且强大的工具,能够帮助我们在查询中实现复杂的条件判断和数据处理,特别是在需要进行行列互换、数据聚合等场景下,DECODE函数的应用显得尤为关键。

    Oracle中Decode()函数使用技巧.doc

    2、表、视图结构转化:例如,将一个商品销售表 sale 转化为以下结构的数据:year、month1、month2、month3、month4、month5、month6、month7、month8、month9、month10、month11、month12,可以使用 Decode 函数来...

    decode函数[归类].pdf

    这个函数在Oracle SQL中扮演了if-then-else逻辑的角色,允许开发者在SQL查询中直接进行逻辑判断,减少了对流程控制语句的依赖。 DECODE函数的基本语法如下: `DECODE(value, if1, then1, if2, then2, ..., else)` ...

    Oracle中Decode()函数的有关用法

    此查询使用`SUBSTRB()`函数截取月份字段的年份部分,并使用`DECODE()`函数结合`SUM()`函数来汇总每个月的销售额。这样就实现了从原始数据到按年份及月份分列的表结构转换。 #### 四、关于NUMBER与INT类型的区别 在...

    Oracle函数及其查询.pptx

    - 还有一些其他功能,如转换函数(如DECODE、CASE表达式)和连接函数(如CONNECT BY),用于在复杂查询中处理条件和构建层级结构。 在实际应用中,了解并熟练掌握这些函数可以帮助开发者编写出更高效、更精确的SQL...

    oracle中decode()函数使用技巧

    Decode 函数的语法:DECODE(value, if1, then1, if2, then2, if3, then3,..., else),表示如果 value 等于 if1 时,DECODE 函数的结果返回 then1,...,如果不等于任何一个 if 值,则返回 else。 初看一下,DECODE...

    Oracle函数与查询.pptx

    GROUP BY子句用于根据一个或多个列对数据进行分组,而HAVING子句则在分组后对结果进行过滤,允许在聚合函数中使用条件。 4. **DateTime函数**: Oracle支持DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE和TIMESTAMP ...

    oracle函数大全.doc

    只有少数几个函数可以处理 NULL 值,例如 CONCAT、DECODE、DUMP、NVL、REPLACE。 NVL 函数 NVL 函数是处理 NULL 值最重要的函数,它可以直接处理 NULL 值。NVL 函数有两个参数:NVL(x1,x2),x1 和 x2 都是表达式,...

    decode函数.pdf

    Decode函数是Oracle数据库中用于实现条件逻辑的一个内置函数,它类似于编程语言中的switch-case语句或if-then-else语句。Decode函数可以对给定的表达式进行多个条件判断,并返回匹配条件的相应值。Decode函数广泛...

    PLSQL 函数查询-- 初学者

    在学习PLSQL函数查询时,结合《精通Oracle 10g PL SQL编程》一书中的详细页码进行查阅,能帮助理解每个函数的实际应用场景。实践中,可以通过创建视图、存储过程、触发器等方式将这些函数结合起来,实现复杂的数据...

    ORACLE 列转行 DECODE函数用法

    在Oracle数据库中,DECODE函数是一个非常实用的工具,它允许你在SQL查询中进行条件判断,将特定的值转换为其他值。DECODE函数在处理列转行的问题时,尤其适用于将多列数据合并到一行中,使得数据展示更加简洁明了。...

    oracle函数和分组

    本篇将详细介绍一些常用的Oracle内建函数,特别是字符函数、数字函数以及分组相关的GROUP BY子句和HAVING子句。 首先,我们来看字符函数。字符函数主要用于处理文本数据,包括: 1. **UPPER函数**:将输入的字符串...

    orcale中DECODE函数

    1 DECODE 中的if-then-else逻辑 在逻辑编程中,经常用到If – Then –Else 进行逻辑判断。在DECODE的语法中,实际上就是这样的逻辑处理过程。

    ORACLE函数大全与整理

    5. 正确使用集合函数可以方便地进行统计分析,但要注意GROUP BY和HAVING子句的使用,以确保结果的正确性。 三、学习和应用 "函数整理.doc"和"ORACLE函数大全.doc"这两个文档应该包含了Oracle函数的详细说明、示例...

Global site tag (gtag.js) - Google Analytics