LeetCode-626. 换座位( 626. Exchange Seats)。知识点:case when then else end

SQL中关于换座位的问题 需求 小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。 其中纵列的 id 是连续递增的 小美想改变相邻俩学生的座位。 你能不能帮她写一个 SQL query 来输出小美想要的结果呢? 示例: 原创文章 931获赞 1407访问量 22万+ 关注 私信 立即下载

小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。

其中纵列的 id 是连续递增的

小美想改变相邻俩学生的座位。

你能不能帮她写一个 SQL query 来输出小美想要的结果呢?

 

示例:

+---------+---------+
|    id   | student |
+---------+---------+
|    1    | Abbot   |
|    2    | Doris   |
|    3    | Emerson |
|    4    | Green   |
|    5    | Jeames  |
+---------+---------+
假如数据输入的是上表,则输出结果如下:

+---------+---------+
|    id   | student |
+---------+---------+
|    1    | Doris   |
|    2    | Abbot   |
|    3    | Green   |
|    4    | Emerson |
|    5    | Jeames  |
+---------+---------+
注意:

如果学生人数是奇数,则不需要改变最后一个同学的座位。

题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/exchange-seats

审题:改变id相邻的两个学生的名字,12,34。如果id是奇数,则最后一个不变。

思考:这是一个查询题目,需要生成新的结果。将students的名字调换。

解题:第一种方法,出去奇数最后一位,直接改变id的奇偶。然后再按照id排序。

SELECT
    (CASE
##如果id初二不等于0,说明是奇数,并且不是最后一个,id+1;
        WHEN MOD(id, 2) != 0 AND counts != id THEN id + 1
##如果是最后一个奇数,那就id不变
        WHEN MOD(id, 2) != 0 AND counts = id THEN id
##其他的都是偶数,减一。
        ELSE id - 1
    END) AS id,
    student
FROM
    seat,
##一共有多少条数据
    (SELECT
        COUNT(*) AS counts
    FROM
        seat) AS seat_counts
ORDER BY id ASC;

case函数用法:

CASE sex
         WHEN '1' THEN '男'
         WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE WHEN sex = '1' THEN '男'
         WHEN sex = '2' THEN '女'
ELSE '其他' END

第二种方法:

SELECT
    s1.id, COALESCE(s2.student, s1.student) AS student
FROM
    seat s1
        LEFT JOIN
    seat s2 ON ((s1.id + 1) ^ 1) - 1 = s2.id
ORDER BY s1.id;

COALESCE() 函数   将空值替换成其他值,返回第一个非空值

 

 

Dify 第 19 篇 手把手教你开发 Dify 插件:从零实现一个时间工具 本文介绍了Dify平台的插件开发机制和流程。Dify支持多种插件类型,包括模型、工具、数据源等,可通过CLI工具快速开发插件。文章详细讲解了如何安装Dify CLI工具,并演示了从零开发一个获取系统时间插件的完整过程,包括项目初始化、文件解读和打包部署。通过该教程,开发者可以快速掌握Dify插件开发的核心要点,实现自定义功能扩展。 阅读详情

相关推荐

Quartus II设计程序计数器PC、由PC产生ROM的地址(含仿真)

设计程序计数器PC,正常工作模式下,系统启动,设置PC的初始值,之后每来一个clk,PC的输出值应该增加1;当程序发生跳转时,PC的值应该发生改变,级将跳转的地址值赋进行输出。PC后端连接一个ROM,由PC来产生ROM的地址,仿真进行验证。

m0_73700621的博客 1815

626. 换座位

626. 换座位 小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。 其中纵列的 id 是连续递增的 小美想改变相邻俩学生的座位。 你能不能帮她写一个 SQL query 来输出小美想要的结果呢? 示例: 假如数据输入的是上表,则输出结果如下: 注意:如果学生人数是奇数,则不需要改变最后一个同学的座位。 解答: SELECT (CASE ...

菜鸟慢慢努力的博客 222

Cherry Studio部署MCP服务报错全记录:从零解决‘Connection closed‘问题

本文详细记录了在Cherry Studio中部署MCP服务时遇到‘Connection closed’报错的完整排查与解决过程。文章从环境依赖(UV、Bun)的安装验证、绝对路径配置、网络镜像源设置,到服务端手动调试与Cherry Studio配置检查,提供了一套系统性的解决方案,帮助开发者彻底解决此类连接问题。

g9h0i1的博客 761

626. Exchange Seats

Mary is a teacher in a middle school and she has a table seat storing students' names and their corresponding seat ids.The column id is continuous increment.Mary wants to change seats for the adjacent...

betty1121的博客 809

香橙派5b 移植 imx415

修改设备树,以为例,关闭ov13855,添加imx4151;0;1;0;1;0;1;0;1;0;1;0;1;0;以此类推,修改三个dtsi。

ChenYX的博客 4533

ADS电路仿真方法综述:原理与应用

在射频与微波电路设计中,精确的仿真技术是验证性能的关键。ADS(Advanced Design System)作为行业标准工具,集成了多种仿真方法,适用于不同场景。本文将系统解析瞬态分析、谐波平衡(HB)、交流分析(AC)、直流分析(DC)、S参数、大信号SP(LSSP)及包络分析的原理、实现机制与应用场景。

u014344410的博客 480

LeetCode 626. 换座位

题意: 小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。 其中纵列的 id 是连续递增的 小美想改变相邻俩学生的座位。 你能不能帮她写一个 SQL query 来输出小美想要的结果呢? 示例: +---------+---------+ | id | student | +---------+---------+ | 1 | Abbot | | 2 | Doris | | 3 | Emerso

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 297

015、架构_配置文件_管理节点(proxymanager.ini)

该配置文件中的参数在后台配置,两种生效方式:*所有参数重启生效。*部分参数可以使用工具dbtool动态生效。动态生效命令为:dbtool-pm-load-config。配置文件“proxymanager.ini”用于设置元数据管理模块的信息。文件路径为“~/etc”。配置文件“proxymanager.ini”是普通的文本文件。默认值proxymanager-alarmconfutf8.txt。配置错误或不配置,PM无法连接MDS,无法服务。获取元数据失败超时处理时间。异常时请求启动对等回滚。

Oracle/MySQL 到 国产信创数据库|迁移 · 调优 · 信创替换 328

[LeetCode] 626. 换座位

小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。 其中纵列的 id 是连续递增的。小美想改变相邻俩学生的座位 ? 示例: +---------+---------+ | id | student | +---------+---------+ | 1 | Abbot | | ...

小涛Dirge 857

AutosarMCAL开发——基于TC3x系列时钟系统浅析

本文为博主个人学习总结记录,如有不正,欢迎指正。

qq_45583706的博客 889

化工设计软件:AutoCAD Plant 3D二次开发_(1).AutoCADPlant3D概述

AutoCAD Plant 3D 是一款专为化工行业设计的三维工厂设计和建模软件。它基于AutoCAD平台,提供了强大的三维建模功能和专业的化工设计工具,帮助工程师和设计师在工厂设计过程中提高效率和准确性。AutoCAD Plant 3D不仅能够创建详细的三维模型,还可以进行管道设计、设备布置、支架设计等复杂任务。通过上述案例,我们可以看出 AutoCAD Plant 3D 在化工厂设计中的强大功能和优势。该软件不仅提供了丰富的建模工具和专业的设计功能,还支持二次开发,使用户能够根据具体需求进行定制化操作。

kkchenjj的博客 1102

LeetCode解析------626.换座位-数据库

题目: 小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。 其中纵列的 id 是连续递增的 小美想改变相邻俩学生的座位。 你能不能帮她写一个 SQL query 来输出小美想要的结果呢? 示例: ±--------±--------+ | id | student | ±--------±--------+ | 1 | Abbot | | 2 | Doris | | 3 | Emerson | |

weixin_44337475的博客 597

基于AI的智能开发环境—Trae在Web开发中的应用实战与性能评估【Trae项目实战】

Trae 是一款与 AI 深度集成的开发工具,提供智能问答、代码自动补全和基于 Agent 的 AI 自动编程能力,极大提升开发效率。它具备完备的 IDE 功能,如代码编写、项目管理和源代码管理等,同时还具备强大的 AI 助手,能够提供智能问答、实时代码建议、代码片段生成等服务。开发者可以通过自然语言与 AI 协作,从 0 到 1 开发项目,AI 会根据需求自动生成代码或创建文件。

一键难忘的博客 3万+

LeetCode //SQL - 626. Exchange Seats

【代码】LeetCode //SQL - 626. Exchange Seats。

Made in Code 706

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【leetcode】626. Exchange Seats

题目: Mary is a teacher in a middle school and she has a table seat storing students' names and their corresponding seat ids. The column id is continuous increment.   Mary wants to change seats for ...

kangbin825的专栏 2669

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

LeetCode - 626. Exchange Seats

Mary is a teacher in a middle school and she has a table seat storing students' names and their corresponding seat ids. The column id is continuous increment.   Mary wants to change seats for the a...

weixin_34026484的博客 212

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【LeetCode】626.换座位

626.换座位小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。其中纵列的id是连续递增的小美想改变相邻俩学生的座位。你能不能帮她写一个 SQL query 来输出小美想要的结果呢?用到的表和数据SQL:Create table If Not Exists seat(id int, studentvarchar(255)); Truncate...

wal1314520的博客 7850

leetcode(626) 换座位

方法一: CASE: # Write your MySQL query statement below SELECT ( CASE WHEN MOD(id,2)=1 AND CNT!=id THEN id+1 WHEN MOD(id,2)=1 AND CNT=id THEN id ELSE id-1 END )AS ...

Knight的博客 228

LeetCode-626. 换座位(中等)

题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/exchange-seats 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 本人思考: – 1、当id为奇数时id+1,为偶数时id-1 – 2、注意当id为奇数时需要判断id是否为最后一个id ,即等于id的个数 select case when mod(id,2) !=0 and id != (select count(id) from sea.

qq_42053453的博客 283

leetcode MYSQL数据库题目

175. Combine Two Tables Table: Person +-------------+---------+ | Column Name | Type | +-------------+---------+ | PersonId | int | | FirstName | varchar | | LastName | varchar |

liqinzhe11的博客 3180

LeetCode数据库-626. 换座位

如果总数为偶数直接替换相邻的同学,如果是奇数最大的id同学位置不变。用sql表达为 select * from ( select b.id-1 id,b.student student FROM seat a,seat b where a.id+1=b.id and mod(b.id,2) = 0 UNION select a.id+1 id,a.student student FRO...

Jason_ss的博客 394

LEETCODE 626. 换座位

Create table If Not Exists seat(id int, student varchar(255)); Truncate table seat; insert into seat (id, student) values ('1', 'Abbot'); insert into seat (id, student) values ('2', 'Doris'); insert i...

又是废柴的一天。。。 987

Leetcode - 626. Exchange Seats

Mary is a teacher in a middle school and she has a tableseatstoring students' names and their corresponding seat ids. The columnidis continuous increment. Mary wants to change seats for the adja...

DaisyHHH的博客 327

LeetCode:626. Exchange Seats

链接: https://leetcode.com/problems/exchange-seats/description/ 题目: Mary is a teacher in a middle school and she has a table seat storing students’ names and their corresponding seat ids. The column...

SCUTJcfeng的博客 1219

Leetcode_626. 换座位

题目描述 有一张 seat 座位表,用来储存学生名字和与他们相对应的座位 id。纵列的 id 是连续递增的想改变相邻俩学生的座位。 正确答案 select (case when id % 2=1 and id=(select count(1) from seat) then id when id % 2=1 then id+1 else id-1 ...

weixin_43395639的博客 230

【LeetCode】626.换座位-学习笔记-对行数的转换

小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。其中纵列的id是连续递增的小美想改变相邻俩学生的座位。你能不能帮她写一个 SQL query 来输出小美想要的结果呢?答案:方法一:按题目的要求,对所有数据进行拆分,1、2互换,3、4互换,最后一个是奇数的不动,然后就分成三块来写,第一块就是id为偶数的,id-1就相当于和奇数的互换了,第二块...

aanndd77的博客 1783
上一篇: 《java编程思想》第四章 控制执行流程
下一篇: 《java编程思想》第七章 复用类
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值