当前位置:首页 » 编程语言 » sql顺序查询

sql顺序查询

发布时间: 2023-03-13 16:27:48

sql 子查询, 如何按照IN的顺序查询

select * where stuId in (111,333,222,444,888,555)
ORDER BY PATINDEX('% ' + CONVERT(nvarchar(4000), stuId) + ' %', ' ' + CONVERT(nvarchar(4000), Replace('(111,333,222,444,888,555', ',',' , ')) + ' ')

Ⅱ sql查询语句的各个命令执行的标准顺序是什么为什么

查询语句是sql语句中使用最多的操作,也涉及到非常多的命令。比如where过滤,group

by分组,order by 排序 limit取值 having等。虽然多,但是各个命令执行的时候却是有顺序的,顺序如下:
select *
from 表名
①-- where 条件1
②-- group by 依据列
③-- having 条件2
④-- order by 依据列
⑤-- limit 0,1

为什么是这么个顺序,原因:
limit取值永远是最后一个.
如果你要order by排序,前提是要首先得到一个查询结果.
查询结果中的三个关键词,where总是是放在表名的后面,而havin过滤永远是放在group后面,所以就有了这么个顺序.如果不遵循顺序,就会出现错误。

是不是这样,我们可以用下面的建表语句验证下.
drop table if exists students;
create table students (
studentNo varchar(10) primary key,
name varchar(10),
sex varchar(1),
hometown varchar(20),
age tinyint(4),
class varchar(10),
card varchar(20)
);
insert into students values
('001', '王昭君', '女', '北京', '20', '1班', '340322199001247654'),
('002', '诸葛亮', '男', '上海', '18', '2班', '340322199002242354'),
('003', '张飞', '男', '南京', '24', '3班', '340322199003247654'),
('004', '白起', '男', '安徽', '22', '4班', '340322199005247654'),
('005', '大乔', '女', '天津', '19', '3班', '340322199004247654'),
('006', '孙尚香', '女', '河北', '18', '1班', '340322199006247654'),
('007', '百里玄策', '男', '山西', '20', '2班', '340322199007247654'),
('008', '小乔', '女', '河南', '15', '3班', null),
('009', '百里守约', '男', '湖南', '21', '1班', ''),
('010', '妲己', '女', '广东', '26', '2班', '340322199607247654'),
('011', '李白', '男', '北京', '30', '4班', '340322199005267754'),
('012', '孙膑', '男', '新疆', '26', '3班', '340322199000297655')

查询该表中除1班外,所有其他班级的最大年龄,最小年龄,并且按照班号进行降序排列(过滤掉2班,只显示最前面的一条信息)

那么sql语句就是: select class,max(age),min(age) from students where class !='1班' group by class having class !='2班' order by class desc limit 1

在这条语句中,新人非常容易犯的错误 就是根据题意,将having放在order by 后面导致错误。原因在于order by应该放在hving的后面。 还有其他疑问的话建议你去搜一下黑马程序员,在IT业内算是比较有实力的机构,里面有线上和线下的课程,还有免费的视频,每天看一点学一下还是比较有用的。不过,如果真的是想入行或者进阶的话,花一段时间高专注度的学习是非常有必要的,投资自己报课试一下吧。

Ⅲ SQL如何条件顺序排列查询结果

用CASE进行转义就可以了
SELECT T1.A,T2.B,T1.C,T2.C
FROM T1 INNER JOIN T2
ON T1.C= T2.C
WHERE T1.A IN ('11','55','33','88')
ORDER BY CASE T1.A
WHEN '11' THEN 1
WHEN '55' THEN 2
WHEN '33' THEN 3
WHEN '88' THEN 4
END

意思是将T1.A的值根据条件转为1,2,3,4这样的数据来排序

你测试一下是不是你要的结果

Ⅳ sql查询语句的各个命令执行的标准顺序是什么为什么

查询语句是sql语句中使用最多的操作,也涉及到非常多的命令。比如where过滤,groupby分组,order
by
排序
limit取值
having等。虽然多,但是各个命令执行的时候却是有顺序的,顺序如下:select
*from
表名①--
where
条件1②--
group
by
依据列③--
having
条件2④--
order
by
依据列⑤--
limit
0,1为什么是这么个顺序,原因:limit取值永远是最后一个.如果你要order
by排序,前提是要首先得到一个查询结果.查询结果中的三个关键词,where总是是放在表名的后面,而havin过滤永远是放在group后面,所以就有了这么个顺序.如果不遵循顺序,就会出现错误。

Ⅳ 根据名字排序查询 SQL

1、在SQL中,排序关键字为ORDER
BY。
2、假如要查询表t1中数据并按“名字”字段排序,可以使用以下语句:
SELECT * FROM t1 ORDER BY 名字3、上述排序方式默认为正序排列,若想倒序排列,可以在语句最后加上
DESC。

热点内容
动态规划01背包算法 发布:2024-11-05 22:17:40 浏览:849
nasm编译器如何安装 发布:2024-11-05 22:01:13 浏览:180
登录密码在微信的哪里 发布:2024-11-05 22:00:29 浏览:739
c防止反编译工具 发布:2024-11-05 21:56:14 浏览:247
安卓虚拟机怎么用 发布:2024-11-05 21:52:48 浏览:344
php时间搜索 发布:2024-11-05 20:58:36 浏览:478
燕山大学编译原理期末考试题 发布:2024-11-05 20:13:54 浏览:528
华为电脑出现临时服务器 发布:2024-11-05 20:05:08 浏览:408
斗战神免费挖矿脚本 发布:2024-11-05 19:53:25 浏览:665
网吧服务器分别是什么 发布:2024-11-05 19:45:32 浏览:392