SQL中order by;group up;like;关联查询join on的用法

排序order by的用法:

1.order by 字段名1 asc/desc, 字段名2 asc/desc,...

先按照字段名1的升序/降续给表进行排列 然后 按照字段名2的升序/降续给表进行排列。 其中排在前面的字段名优先进行排列,排在后面的在前面的基础上在进行排列。

2. order by 字段序号 asc/desc, 字段序号 asc/desc,...

按照字段的序号进行排列,字段的序号就是表中每个字段从左到右依次排列的顺序,从1开始。字段序号对应相应的字段名。

3.

asc(升序)/desc(降序)

order by 默认是升序排列的,所以我们在进行排列时 可以不写asc,但是降序的时候必须写desc。

4.order by 要放在where语句的后面

group up的用法

1.group up 字段列表

2.group by 字段列表 having 过滤条件

在一完整的语句中select后面仅可以跟要分组的字段和聚合函数

分组中的like用法

like 操作符用于在 where 子句中搜索列中的指定模式。

select * from student where sno like ‘1%‘

like后面跟1%说明是第一个字符必须是你写的值后面可以跟其他的内容,只要符合1xxxxx的这样的形式就符合;

like后面跟%1说明是最后一个字符必须是你写的值后面可以跟其他的内容,只要符合xxxxx1的这样的形式就符合;

like后面跟%1%说明是只要字段中有你写的值后面可以跟其他的内容,只要符合xx1xxx的这样的形式就符合;

关联查询join on的用法

join连接两个数据表的用法:

select * from 表1  join 表2 on表1.字段号=表2.字段号

join连接三个数据表的用法:

select * from (表1 join 表2 on表1.字段号=表2.字段号) join 表3 on表1.字段号=表3.字段号

join连接四个数据表的用法:

select * from ((表1 join 表2 in表1.字段号=表2.字段号) join 表3 on表1.字段号=表3.字段号) join 表4 ON 表1.字段号=表4.字段号

时间: 2024-10-14 23:22:45

SQL中order by;group up;like;关联查询join on的用法的相关文章

SQL中Update...Select...的使用,关联查询后进行更新数据

最常用的update语法是: UPDATE <table_name> SET <column_name1> = <value>,SET <column_name2> = <value> 如果我的更新值Value是从一条select语句拿出来,而且有很多列的话,用这种语法就很麻烦 第一,要select出来放在临时变量上,有很多个哦 第二,再将变量进行赋值. 列多起来非常麻烦,能不能像Insert那样,把整个Select语句的结果进行插入呢?就好象下

sql中order by和group by的区别

order by 和 group by 的区别: 1,order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字段名,可以是多个字段名. 2,group by 从英文里理解就是分组.必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段. 3,在使用group by的语句中,只能select用于分类的列(表达式),或聚合函数.where条件用于group by之前,having用于group by 之后对结果进行筛选. 扩展资料: 一.ord

hive中order by,sort by, distribute by, cluster by作用以及用法

1. order by Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer).但是对于大量数据这将会消耗很长的时间去执行. 这里跟传统的sql还有一点区别:如果指定了hive.mapred.mode=strict(默认值是nonstrict),这时就必须指定limit来

关联查询 join on 和比较运算符 in

join on多表之间的关联查询 写法select 字段 from 表1 t join 表2 s on t.字段1 = s.字段1 where 条件: 也可以这么写select 字段 from 表1 t, 表2 s where t.字段1 = s.字段1: 特点表的数据和另外一个表没有可关联数据,那该数据就会被隐藏. 两表查询: 三表查询: 比较运算符 in 比较字段的值在若干值的列表中用法:字段名 in (逗号分割的值列表) 或写子查询: 字段名 in (select 字段名 from 表 w

11 SQL中的GroupBy (Group by in sql server)

GroupBy 语句用来对选择的结果进行分组,GroupBy通常和聚合函数一起使用.比如有下面的一张表: 如果我们要将其按照City分组,并且计算出每个City的工资总和的话,可以使用下面的语句: SELECT [City],SUM([Salary]) AS TotalSalary FROM [Sample].[dbo].[tblEmployee] GROUP BY [City] 下面是执行结果: 这里有一点要注意的是:如果我们不写Group By 语句,那么上面的代码会报错.原因很简单既然我们

sql中having与group by的用法

-------------自己测试--------------- select sname,sum(smon) from student group by sname having sum(smon)>7 ---------------自己测试----------------- 下面是正文 当同时含有where子句.group by 子句 .having子句及聚集函数时,执行顺序如下: 执行where子句查找符合条件的数据: 使用group by 子句对数据进行分组: 对group by 子句形

SQL中存在两个max条件的查询语句

前段时间找工作参加笔试,笔试题中有一道sql查询语句,条件是两个字段都是最大值,第一直觉是两个字段(例如age.hight)都等于max(),用一个行子查询就行了.第二直觉又不是,如果表中恰好有一条age=max(age),hight=max(hight)的数据,行子查询是没问题的.但是如果age=max(age)的数据hight!=max(hight)并且hight=max(hight)的数据age=!max(age)呢?那么查出来的结果必然是空. 我想首先保证age=max(age),在ag

sql中根据汉字的拼音首字母查询的函数

/****** Object:  UserDefinedFunction [dbo].[f_GetPy]    Script Date: 06/09/2010 10:31:33 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate function   [dbo].[f_GetPy](@str   nvarchar(4000)) returns   nvarchar(4000) as begin declare   @strlen 

按科室统计 2.181222版本 关联查询join 不对

SQL: select t0.deptName, t0.deptId, t0.startTime, t0.endTime, IFNULL(t0.num,0) as num0, IFNULL(t1.num,0) as num1, IFNULL(t2.num,0) as num2, IFNULL(t4.num,0) as num4, IFNULL(t5.num,0) as num5, IFNULL(t6.num,0) as num6, IFNULL(t7.num,0) as num7, IFNULL