麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

sql學(xué)習(xí)之CASE WHEN THEN ELSE END的用法

2024-08-31 01:02:17
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了sql學(xué)習(xí)之CASE WHEN THEN ELSE END的用法,需要的朋友可以參考下
 
 

超強(qiáng):SQL命令中的case...when...then...else...end條件查詢(不同于where) 與 類(lèi)型轉(zhuǎn)換的用法

case...when...then...else...end,是在from前面,可以改變記錄中某字段的值,不能決定是否顯示該記錄;

where,是在from后面,不可以改變記錄中某字段的值,但可以決定是否顯示該記錄。

case...when...then...else...end,可用于對(duì)同一記錄的多個(gè)字段求和,帶分支判斷。

另外,對(duì)字段判斷和處理,往往需要強(qiáng)制類(lèi)型轉(zhuǎn)換。

select to_number('19f','xxx') from dual; --八進(jìn)制
得到  415 
select to_number('f','xx') from dual; --十六進(jìn)制
得到  15

select to_number('123')  from dual; --十進(jìn)制
得到  123

與date操作關(guān)系最大的就是兩個(gè)轉(zhuǎn)換函數(shù):to_date(),to_char() 
to_date() 作用將字符類(lèi)型按一定格式轉(zhuǎn)化為日期類(lèi)型:
具體用法:to_date('2004-11-27','yyyy-mm-dd'),
前者為字符串,后者為轉(zhuǎn)換日期格式,注意,前后兩者要以一對(duì)應(yīng)。如to_date('2004-11-27 13:34:43', 'yyyy-mm-dd hh24:mi:ss') 將得到具體的時(shí)間

字符串處理函數(shù):

select to_number(SUBSTR(rain_1,0,2),'xx')  from obs

(一)Access 數(shù)據(jù)庫(kù)

大家知道在access中有iif函數(shù),能將一個(gè)判斷賦值序列簡(jiǎn)化成一個(gè)表達(dá)式,比如 
iif(a>b,1,2),如果確實(shí)a>b那么結(jié)果給出1,否則就是2。這實(shí)在很方便。

示例
(1)數(shù)字
如果 Measures.CurrentMember 是空單元,則下面的示例返回 0,否則返回 1 
IIf(IsEmpty(Measures.CurrentMember), 0, 1)

(2)字符串 
如果Measures.CurrentMember 是空單元,則下面的字符串返回字符串"Yes",否則返回字符串"No" 
IIf(IsEmpty(Measures.CurrentMember), "Yes", "No")

在Access中我可以用IIF函數(shù)進(jìn)行統(tǒng)計(jì)匯總,比如,要知道實(shí)際應(yīng)該交費(fèi)的用戶個(gè)數(shù)
Access寫(xiě)法:Select sum(iif(金額>0, 1,0)) as num from 費(fèi)用

MS SQL寫(xiě)法:select sum(case when 金額>0 then 1 else 0 end) as num from 費(fèi)用

(二)Ms SQL 數(shù)據(jù)庫(kù)

IIF在SQL中是 case when ....then ...else...  end

例:select id,case when bz='1' then xx when bz='2' then yy else zz end as tt from xxx

這里我舉個(gè)例子,有一個(gè)表政策法規(guī)表(policy_fgxx),有ID(主鍵)、bzh(標(biāo)準(zhǔn)號(hào))、zynr(主要內(nèi)容)、

fbrq(發(fā)布日期)四個(gè)字段

Select * From policy_fgxx 結(jié)果:

ID bzh zynr fbrq
13 001 <p>你好</p> 2010-05-07 0:00:00
15 NULL

我不想要上面的結(jié)果,我想要下面這個(gè)結(jié)果:

ID bzh zynr fbrq
13 001 <p>你好</p> 2010-05-07 0:00:00
15 無(wú) 1990-06-06 0:00:00

也就是說(shuō),標(biāo)準(zhǔn)號(hào)為空的時(shí)候我想讓它顯示空,發(fā)布日期為null的時(shí)候我想讓它顯示我指定的日期

下面我給出寫(xiě)法,大家可以自己思考

Select id,zynr,(case when bzh='' then '無(wú)' else bzh end) AS bzh,(case when fbrq is null then '1982-06-02' else fbrq end) AS fbrq From policy_fgxx

sqlite case when then else end

sqlite> select datetime(CreateTime, 'unixepoch', 'localtime') 時(shí)間,Message 內(nèi)容,case Des when 0 then '樂(lè)' else '園' end 名稱(chēng) from Chat_af863d30e1c1e5eba27a0df37a75dba0 where rowid <= 2;+---------------------+----------+------+| 時(shí)間        | 內(nèi)容   | 名稱(chēng) |+---------------------+----------+------+| 2013-08-22 18:54:13 | 網(wǎng)絡(luò)不好 | 園  || 2013-08-22 20:19:07 | 喬樂(lè)   | 園  |+---------------------+----------+------+2 rows in set

其它網(wǎng)友的實(shí)例:

 Id     name        dept
1        aa          dept1
2        bb          dept1
3        cc           dept2

SELECT SUM(CASE decp WHEN 'decp1' THEN 1 ELSE 0 end ) AS decp1, 
sum(case decp when 'decp2'then 1 else 0 end)as decp2 
FROM teacher

生成:

dept1     dept2

2             1

這個(gè)例子主要是學(xué)習(xí)了(CASE  WHEN  THEN   ELSE   end )語(yǔ)句的用法.

在我們做數(shù)據(jù)統(tǒng)計(jì)的時(shí)候這是一個(gè)非常有用的語(yǔ)句。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲精品久久久久久久久久久 | 中文字幕在线亚洲 | 久久99精品国产 | 亚洲一区二区三区高清视频 | 性高潮一级片 | 精品中文字幕久久久久四十五十骆 | 午夜小网站 | 看av网址 | h视频免费在线观看 | 精精国产xxxx视频在线播放7 | 久久96国产精品久久秘臀 | 久草在线播放视频 | 久久久久国产一区二区三区不卡 | 国产精品成人一区二区三区吃奶 | 免费在线观看中文字幕 | 91精品观看91久久久久久国产 | 一级做a爰性色毛片免费1 | 久久亚洲成人 | 日韩精品久久久久久久电影99爱 | 美女露100%无遮挡 | 黄色羞羞视频在线观看 | 一本大道av | 特大黑人videos与另类娇小 | 国产免费观看电影网站 | 久草在线视频精品 | 77成人影院 | 国产成人综合在线视频 | 国产91久久久久久 | 久久久无码精品亚洲日韩按摩 | 天天鲁在线视频免费观看 | 久久影院午夜 | 麻豆91精品91久久久 | 国产老师做www爽爽爽视频 | 日本黄色免费片 | 毛片免费一区二区三区 | 欧美视频99| 国产亚洲精彩视频 | 国产精品视频一区二区三区四区国 | h视频在线播放 | 久久777国产线看观看精品 | 日韩深夜视频 |