欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中Case?When用法及說(shuō)明

 更新時(shí)間:2022年12月29日 14:25:20   作者:追夢(mèng)菜鳥(niǎo)  
這篇文章主要介紹了MySQL中Case?When用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。

最近,在學(xué)習(xí)Hive基礎(chǔ)知識(shí)時(shí),遇到了遇到了Case When Else End語(yǔ)法,以前學(xué)習(xí)MySQL時(shí)忽略了這部分知識(shí)點(diǎn),現(xiàn)總結(jié)一下相關(guān)的知識(shí)給大家。

首先練習(xí)一個(gè)例子如下:

一、學(xué)生課程成績(jī)統(tǒng)計(jì)

1) 建表

use hiveDemo;
CREATE TABLE `course` (
  `id` int,
  `sid` int ,
  `course` string,
  `score` int 
) ;

2) 插入數(shù)據(jù)

// 字段解釋?zhuān)篿d, 學(xué)號(hào), 課程, 成績(jī)
INSERT INTO `course` VALUES (1, 1, 'yuwen', 43);
INSERT INTO `course` VALUES (2, 1, 'shuxue', 55);
INSERT INTO `course` VALUES (3, 2, 'yuwen', 77);
INSERT INTO `course` VALUES (4, 2, 'shuxue', 88);
INSERT INTO `course` VALUES (5, 3, 'yuwen', 98);
INSERT INTO `course` VALUES (6, 3, 'shuxue', 65);

3) 需求

求:所有數(shù)學(xué)課程成績(jī) 大于 語(yǔ)文課程成績(jī)的學(xué)生的學(xué)號(hào)

最開(kāi)始的想法是打算同過(guò)自連接的方式來(lái)解決,后來(lái)咨詢了公司的同事,知道了可以case可以用來(lái)解決此問(wèn)題。

a. 使用case...when...將不同的課程名稱轉(zhuǎn)換成不同的列。 

create view tmp_course_view as
select sid, case course when "shuxue" then score else 0 end  as shuxue,  
case course when "yuwen" then score else 0 end  as yuwen from course;  
 
select * from tmp_course_view;

 

b. 以sid分組合并取各成績(jī)最大值

create view tmp_course_view1 as
select aa.sid, max(aa.shuxue) as shuxue, max(aa.yuwen) as yuwen from tmp_course_view aa group by sid;  
 
select * from tmp_course_view1;

c. 比較結(jié)果

select * from tmp_course_view1 where shuxue > yuwen;

二、Case When Else End用法詳解

1) 更新

update table  
set 字段1=case     
    when 條件1 then 值1       
    when 條件2 then 值2      
    else 值3      
    end     
where    …… 

2) 查詢

select 字段1, 字段2,       
    case 字段3     
    when 值1 then 新值       
    when 值2 then 新值      
    end as 重新命名字段3的名字       
from table      
where ……      
order by ……  

在一般的SELECT中,其語(yǔ)法如下:   

sql 中 case when 語(yǔ)法在這里添加日志標(biāo)題 - 錢(qián)途無(wú)梁 - Notebook of 錢(qián)途無(wú)梁SELECT <myColumnSpec> =?
sql 中 case when 語(yǔ)法在這里添加日志標(biāo)題 - 錢(qián)途無(wú)梁 - Notebook of 錢(qián)途無(wú)梁CASE?
sql 中 case when 語(yǔ)法在這里添加日志標(biāo)題 - 錢(qián)途無(wú)梁 - Notebook of 錢(qián)途無(wú)梁WHEN <A> THEN <somethingA>?
sql 中 case when 語(yǔ)法在這里添加日志標(biāo)題 - 錢(qián)途無(wú)梁 - Notebook of 錢(qián)途無(wú)梁WHEN <B> THEN <somethingB>?
sql 中 case when 語(yǔ)法在這里添加日志標(biāo)題 - 錢(qián)途無(wú)梁 - Notebook of 錢(qián)途無(wú)梁ELSE <somethingE>?
sql 中 case when 語(yǔ)法在這里添加日志標(biāo)題 - 錢(qián)途無(wú)梁 - Notebook of 錢(qián)途無(wú)梁END?

CASE可能是 SQL 中被誤用最多的關(guān)鍵字之一。

雖然你可能以前用過(guò)這個(gè)關(guān)鍵字來(lái)創(chuàng)建字段,但是它還具有更多用法。

例如,你可以在 WHERE、GROUP BY和Order By子句中使用CASE。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL多層級(jí)結(jié)構(gòu)-區(qū)域表使用樹(shù)詳解

    MySQL多層級(jí)結(jié)構(gòu)-區(qū)域表使用樹(shù)詳解

    前面我們大概介紹了一下樹(shù)結(jié)構(gòu)表的基本使用。在我們項(xiàng)目中有好幾塊有用到多層級(jí)的概念。下面我們哪大家都比較熟悉的區(qū)域表來(lái)做演示
    2016-07-07
  • SQL結(jié)果如何根據(jù)某個(gè)字段取最新時(shí)間去重

    SQL結(jié)果如何根據(jù)某個(gè)字段取最新時(shí)間去重

    在日常的項(xiàng)目開(kāi)發(fā)當(dāng)中,經(jīng)常會(huì)遇到獲取同一屬性相同的記錄,如何獲取記錄時(shí)間最新的那一條,下面這篇文章主要給大家介紹了關(guān)于SQL結(jié)果如何根據(jù)某個(gè)字段取最新時(shí)間去重的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • 詳解數(shù)據(jù)庫(kù)連接的URL的寫(xiě)法及總結(jié)

    詳解數(shù)據(jù)庫(kù)連接的URL的寫(xiě)法及總結(jié)

    這篇文章主要介紹了詳解數(shù)據(jù)庫(kù)連接的URL的寫(xiě)法及總結(jié)的相關(guān)資料這里提供了四種方法1、oracle.2、MySQL.3、SQL Server.4、DB2,需要的朋友可以參考下
    2017-07-07
  • MySQL Order By Rand()效率分析

    MySQL Order By Rand()效率分析

    本文詳細(xì)解說(shuō)了MySQL Order By Rand()效率優(yōu)化的方案,并給出了優(yōu)化的思路過(guò)程,是篇不可多得的MySQL Order By Rand()效率美文
    2012-07-07
  • MySQL之join查詢優(yōu)化方式

    MySQL之join查詢優(yōu)化方式

    這篇文章主要介紹了MySQL之join查詢優(yōu)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Mysql分庫(kù)分表之后主鍵處理的幾種方法

    Mysql分庫(kù)分表之后主鍵處理的幾種方法

    Mysql分庫(kù)分表之后,主鍵如何處理?本文主要介紹了Mysql分庫(kù)分表之后主鍵處理的幾種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-02-02
  • MySQL 1130異常,無(wú)法遠(yuǎn)程登錄解決方案詳解

    MySQL 1130異常,無(wú)法遠(yuǎn)程登錄解決方案詳解

    這篇文章主要介紹了MySQL 1130異常,無(wú)法遠(yuǎn)程登錄解決方案詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • mysql 索引詳細(xì)介紹

    mysql 索引詳細(xì)介紹

    這篇文章主要介紹了mysql 索引詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • mysql性能監(jiān)控工具Innotop簡(jiǎn)介及配置

    mysql性能監(jiān)控工具Innotop簡(jiǎn)介及配置

    INNOTOP是一個(gè)通過(guò)文本模式顯示MySQL和InnoDB的監(jiān)測(cè)工具。INNOTOP是用PERL語(yǔ)言寫(xiě)成的,這使它能更加靈活的使用在各種操作平臺(tái)之上,它能詳細(xì)的的監(jiān)控出當(dāng)前MYSQL和INNODB運(yùn)行的狀態(tài),以DBA根據(jù)結(jié)果,可以合理的優(yōu)化MYSQL,讓MYSQL更穩(wěn)定更高效的運(yùn)行。
    2014-08-08
  • 巧用mysql提示符prompt清晰管理數(shù)據(jù)庫(kù)的方法

    巧用mysql提示符prompt清晰管理數(shù)據(jù)庫(kù)的方法

    隨著管理mysql服務(wù)器越來(lái)越多,同樣的mysql>的提示符有可能會(huì)讓你輸入錯(cuò)誤的命令到錯(cuò)誤的數(shù)據(jù)庫(kù),這時(shí)候需要巧用mysql的提示符,這是我的提示符root@localhost(mysql) 08:55:21> 用prompt命令實(shí)現(xiàn)(適用于windows和linux環(huán)境)
    2009-08-08

最新評(píng)論