SQL每日一题F1025,复杂逻辑处理

  1. SQL每日一题F1025,复杂逻辑处理

SQL每日一题F1025,复杂逻辑处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
create table F1025
(
id int,
num int
)

insert into F1025 values(1,5);
insert into F1025 values(2,11);
insert into F1025 values(3,0);
insert into F1025 values(4,-2);
insert into F1025 values(5,2);
insert into F1025 values(6,9);
insert into F1025 values(7,1);
insert into F1025 values(8,-4);
insert into F1025 values(9,-7);

– Q:要求当Num中的数据同时大于上下两行数据,返回值为“是”,
– 当Num中的数据小于上下两行数据中的任何一行,返回值为“否”
– 例如:11大于5,11大于0,所以11那行返回值为“是”;5小于11,所以5那行返回值为“否”

1
2
3
4
5
6
7
8
9
10
SELECT 
a.id
,a.Num
,CASE WHEN a.Num>ISNULL((
SELECT Num FROM F1025 b WHERE b.id=a.id-1
),a.Num-1)
AND a.Num>ISNULL((
SELECT Num FROM F1025 c WHERE c.id=a.id+1
),a.Num-1) THEN '是' ELSE '否' END AS Result
FROM F1025 AS a

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 richffan@outlook.com

文章标题:SQL每日一题F1025,复杂逻辑处理

字数:210

本文作者:Rich Fan

发布时间:2023-08-01, 00:00:00

最后更新:2024-02-27, 08:17:39

原始链接:http://fanrich.github.io/2023/07/31/SQL/SQL%20Daily%20Question%20F1025,%20Complex%20Logic%20Processing/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。