本文主要介紹案例語(yǔ)句sql(sql中的案例),下面一起看看案例語(yǔ)句sql(sql中的案例)相關(guān)資訊。
sql中有兩種形式的用例:簡(jiǎn)單用例函數(shù)和用例搜索函數(shù)。復(fù)制代碼代碼如下:簡(jiǎn)單的函數(shù)案例當(dāng) 1 然后 男性 何時(shí) 2 然后 女性 另一端——案件搜索功能時(shí),性別= 1 然后 男性 當(dāng)性= 2 然后 女性 另外,這兩種方法可以實(shí)現(xiàn)相同的功能,簡(jiǎn)單案例功能更簡(jiǎn)單,但與案例搜索功能相比。另一個(gè)需要注意的問(wèn)題是,case函數(shù)只返回第一個(gè)條件值,其余的會(huì)被自動(dòng)忽略。例如,在下面的sql部分中,第二種類型的復(fù)制代碼是這樣的:當(dāng)col_1在(a,b)中時(shí),然后是第一種類型,當(dāng)col_1在(a)中時(shí),然后是第二種類型else 其他端。讓 讓我們看看如何使用case函數(shù)。首先,將已知數(shù)據(jù)以另一種分組并進(jìn)行分析。有以下數(shù)據(jù):(為了看得更清楚,我沒有 不使用國(guó)家代碼,而是使用國(guó)家名稱作為主鍵)。國(guó)家(國(guó)家)人口(人口)600美國(guó)100加拿大100英國(guó)200法國(guó)300日本250德國(guó)200墨西哥50印度250按國(guó)家 美國(guó)的人口數(shù)據(jù),計(jì)算出亞洲和北美的人口。大陸人口亞洲1100北美250其他700你將如何解決這個(gè)問(wèn)題用大陸代碼創(chuàng)建視圖是一個(gè)解決方案,但是很難動(dòng)態(tài)改變統(tǒng)計(jì)方法。如果使用case函數(shù),sql代碼如下:復(fù)制代碼如下:select and (population),case所在國(guó)家為 然后 亞洲及太平洋。;印度,然后是亞洲,日本,然后是亞洲,然后是美國(guó),然后是北美,然后是加拿大,然后是北美,然后是墨西哥。然后,北美的另一端將會(huì)是 然后 亞洲及太平洋。;像印度,然后亞洲,日本,然后亞洲像我們,然后北美,然后加拿大,然后北美,然后墨西哥,然后北美的另一端。同樣,我們也可以用這種方法來(lái)確定工資級(jí)別,計(jì)算每個(gè)級(jí)別的人數(shù)。復(fù)制代碼代碼如下:當(dāng) 1 工資選500當(dāng)工資500工資600工資800工資500工資600工資800工資1000)女員工的條件和男員工一樣。第四,根據(jù)條件選擇更新。比如以下更新條件的員工工資高于工資,降薪5%。工資在員工中,工資增長(zhǎng)了10% .您可以很容易地考慮選擇執(zhí)行兩條update語(yǔ)句,如下所示。復(fù)制代碼代碼如下:-條件更新人才集薪資=薪資* 0.9薪資范圍5000;-有條件續(xù)約人才集薪資=薪資* 1.15薪資加薪資 amplt;4600 ampgt;2000;但這并不像想象的那么容易,有一個(gè)人 的薪水。一是根據(jù)條件降低工資,成為他們的工資。接下來(lái)運(yùn)行第二條sql的時(shí)間因?yàn)槿说墓べY范圍內(nèi)的限制而增加,最后人的工資不減反增。如果反過(guò)來(lái),那么工資就會(huì)降低工資。不管規(guī)則有多荒謬,如果想要一條sql語(yǔ)句實(shí)現(xiàn)這個(gè)功能,我們需要使用如下的函數(shù)代碼:復(fù)制代碼代碼如下:設(shè)置人才時(shí)更新薪資= salary = 5000,那么salary和salary amplt;4600 = 2000,那么薪資* 1.15其他薪資目標(biāo);需要注意的是,最后一行的其他工資是必須的。如果沒有這條線,不符合這兩個(gè)條件的人工資就寫成null,這就是大事。這種方法也可以用在很多場(chǎng)合,比如關(guān)鍵工作的變動(dòng)。一般來(lái)說(shuō),a、b這兩個(gè)數(shù)據(jù)的主鍵交換,需要經(jīng)過(guò)數(shù)據(jù)的暫存、復(fù)制、讀取三個(gè)過(guò)程,比如函數(shù)的使用,一切就變得容易了。p_key col_1 col_2 1塊3-b2lisi,sic,3國(guó)王武假設(shè)上面有數(shù)據(jù),需要交換主密鑰a和b,實(shí)現(xiàn)case函數(shù)時(shí),代碼如下。復(fù)制代碼如下:當(dāng)集合p_key =更新時(shí),p _ key = a then 當(dāng)p_key = b時(shí),則 a其他p_keys以p_key結(jié)尾在(a,b);同樣也可以換成兩個(gè)唯一的密鑰。需要注意的是,如果需要交換主鍵,表的設(shè)計(jì)通常是不夠的。提案清單的設(shè)計(jì)是恰當(dāng)?shù)?。五、兩表?shù)據(jù)的一致性檢查。這樣的函數(shù)是不同的解碼函數(shù)。在case函數(shù)中,可以使用between,比如empty,existing等等。比如在使用中,存在,可以執(zhí)行子查詢實(shí)現(xiàn)更多功能。作為下一個(gè)掩碼的示例,有兩個(gè)表tbl_a、tbl_b和兩個(gè)keycol列?,F(xiàn)在讓我們 讓我們比較一下這兩張表。如果tbl_a keycol列中的數(shù)據(jù)可以在tbl_b keycol列中找到,那么結(jié)果 匹配 被退回。如果沒有找到,它返回結(jié)果 無(wú)可匹敵。要實(shí)現(xiàn)以下功能,可以使用以下兩條語(yǔ)句復(fù)制代碼如下:-使用時(shí)選擇關(guān)鍵字,關(guān)鍵字在時(shí)從tbl_b中選擇關(guān)鍵字(從tbl _ b中選擇關(guān)鍵字)然后 匹配的else 無(wú)與倫比 來(lái)自tbl的結(jié)束標(biāo)簽;-使用時(shí)選擇關(guān)鍵字,tbl _ a.keyword = tbl _ bkeyword)中有(select * from tbl_b)時(shí)。然后 匹配的else 無(wú)與倫比 來(lái)自tbl的結(jié)束標(biāo)簽;使用和存在的結(jié)果是一樣的。也可以用不存在和不存在,但是這次一定要注意null。六、在用例函數(shù)中使用聚合函數(shù)。假設(shè)有一個(gè)表,表中有std_id,課程id(class_id),課程名稱(class_name),劍(main_class_) 1001經(jīng)濟(jì)學(xué)y 1002歷史學(xué)n 2002歷史學(xué)n 2003考古學(xué)y 2004計(jì)算機(jī)3004計(jì)算機(jī)4005化學(xué)n 5006數(shù)學(xué)n有些同學(xué)選擇在同一個(gè)地方學(xué)習(xí)。時(shí)間上有幾門課(100,200),有的同學(xué)只選一門課(300,400,500)。選多門課的同學(xué)要選一門課作為自己的專業(yè),主標(biāo)志寫y,只有一門課是國(guó)旗n(其實(shí)你寫y就不會(huì)有麻煩了。)。例如,請(qǐng)包含更多)。現(xiàn)在我們必須根據(jù)以下兩個(gè)條件查詢只上了一門課并返回了課程id的人。選擇幾個(gè)主題并返回所選的主課程id。簡(jiǎn)單的想法是執(zhí)行兩個(gè)不同的sql語(yǔ)句進(jìn)行查詢。條件復(fù)制代碼如下:-條件:只選擇一門課的學(xué)生選擇std_id,max(class_id)作為main_class,有從studentclass組到std_id (*) = 1的計(jì)數(shù);結(jié)果執(zhí)行std_id main _ class-三千四千四千五千六條件復(fù)制的代碼如下:-條件:選擇多門課的學(xué)生選擇std _ id,class_id從main _ class _ flg中的studentclass取為主課= y;結(jié)果執(zhí)行std_id main _ class-101203如果我們使用case函數(shù),只需要一條sql語(yǔ)句就可以解決這個(gè)問(wèn)題,如下圖。復(fù)制如下所示的代碼:select std _ id,當(dāng)count (*) = 1時(shí),——的學(xué)生只選擇一門課程,max (class_id) other max(萬(wàn)一,main_class_ = y)然后class_id other空end),最后main_class。通過(guò)std_id從studentclass組獲取s;;運(yùn)行結(jié)果std _ id main _ class-1012033044055006通過(guò)在case函數(shù)中嵌套case函數(shù),在聚合函數(shù)中使用case函數(shù),我們可以輕松解決這個(gè)問(wèn)題,使用case函數(shù)給我們更多的自由。最后提醒一下case函數(shù)新手不要犯以下錯(cuò)誤。復(fù)制代碼代碼如下:case col _ 1 when 1 then 右當(dāng)0然后 錯(cuò)止于此語(yǔ)句,此時(shí)零線總是回歸未知,所以永遠(yuǎn)不會(huì)有錯(cuò)。因?yàn)檫@句話可以用在col_1 = null,這是一個(gè)錯(cuò)誤的用法,此時(shí)我們應(yīng)該選擇使用col_1為空。
了解更多案例語(yǔ)句sql(sql中的案例)相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。