lamda表达式修改数据_图解sql面试题:如何按条件修改数据?
?【題目】
下圖表名是“班級表”,請將班級中所有的1班、2班交換,0班變?yōu)?班。要求只使用更新語句(update),不要使用select語句。
【解題思路】
1. 題目要求按條件更換列中的內(nèi)容,“條件”我們想到的是sql里的case表達(dá)式。
2. case...when...的使用方法在《從零學(xué)會SQL:多表查詢》里有講過:
3. 更新語句時需要用到update語句,update語句使用方法如下:
update 表名 set 列名 = 修改后的值;【解題步驟】
1.確定case...when...語句中的內(nèi)容
第一個條件是1班換為2班,第二個條件是2班換為1班,最后剩下的0班全部變成3班,語句如下: update 班級表 set 班級 = (case 班級when 1 then 2when 2 then 1else 3end);查詢更新完的班級表:已經(jīng)更新成功。
【本題考點(diǎn)】
1)一般在做SQL面試題時,大部分都是使用select語句完成。但在工作中,也會經(jīng)常遇到要更新數(shù)據(jù)的情況。本題考察對update語句的掌握。
2)考察如何將業(yè)務(wù)條件用case表達(dá)式寫出來。
【舉一反三】
1. 在遇到需要將表內(nèi)某列特定值替換成其他值時,記住case表達(dá)式如何使用。
2. 本題如果只是要求查詢的話,使用select語句即可:
select (上面的case表達(dá)式) from 表名
3. 需要直接更新表中的數(shù)據(jù)的情況,熟記update語句。但要注意,在使用update更新表數(shù)據(jù)前,最好先將原表備份。
4. “按條件修改表數(shù)據(jù)”的應(yīng)用例題
如下圖所示的salary表,有m = 男性和f = 女性的值。交換所有的f和m的值(將所有f更改為m,m改為f)。要求只使用update的語句。
參考答案:
update salary set sex = (case sexwhen 'm' then 'f'else 'm'end);運(yùn)行結(jié)果:
推薦:如何從零學(xué)會SQL?
總結(jié)
以上是生活随笔為你收集整理的lamda表达式修改数据_图解sql面试题:如何按条件修改数据?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用函数统计指定c语言,浙大版《C语言程
- 下一篇: 485通讯线是几芯的_小令老师说门禁|