sql中的iif语句详解
生活随笔
收集整理的這篇文章主要介紹了
sql中的iif语句详解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
IIf
? 返回由邏輯測試確定的兩個(gè)數(shù)值或字符串值之一。 ??
???
? 語法 ??
? 數(shù)字 ??
?IIf(«Logical?? Expression»,?? «Numeric?? Expression1»,?? «Numeric?? Expression2»)?
?
? 如果 ?? «Logical?? Expression»?? 取值為 ?? TRUE ,則此函數(shù)返回 ?? «Numeric?? Expression1» ,否則,返回 ?? «Numeric?? Expression2» 。
?
? 字符串 ??
?IIf(«Logical?? Expression»,?? «String?? Expression1»,?? «String?? Expression2»)???
?
? 如果 ?? «Logical?? Expression»?? 取值為 ??TRUE ,則此函數(shù)返回 ?? «String?? Expression1» ,否則,返回 ?? «String?? Expression2» 。 ?
?
? 注釋 ??
? 只有當(dāng) ?? «Logical?? Expression»?? 的值為零時(shí),才認(rèn)為該表達(dá)式是 ?? FALSE 。任何其它值都被解釋為 ?? TRUE 。 ?
? 不推薦用 ?? Iif?? 函數(shù)基于搜索條件創(chuàng)建成員的集合。請改用 ?? Filter?? 函數(shù)根據(jù)邏輯表達(dá)式評(píng)估指定集合中的每個(gè)成員,然后返回成員的子集合。 ?
?
? 示例
數(shù)字
? 如果 ?? Measures.CurrentMember?? 是空單元,則下面的示例返回 ?? 0 ,否則返回 ?? 1 : ??
?IIf(IsEmpty(Measures.CurrentMember),?? 0,?? 1)??
? 字符串 ??
? 如果 ?? 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ù) :
Select sum(iif( 金額 >0, 1,0)) as num from 費(fèi)用
在 SQL Server 中好像沒有對(duì)應(yīng)的函數(shù),我用:
select sum(case when 金額 >0 then 1 else 0 end) as num from 費(fèi)用
好像不太直觀,不知道有沒有其它方法
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
那 MID , LEFT 等呢?在 SQL 中怎么用?
MID ? 就是 ? SQL ? 里的 substring ?
?LEFT ? 就是 ? SQL ? 里的 ? LEFT ?
比如 ? substring( 字段 , 開始位置 , 取多少長度 ) ?
left( 字段 , 取多少長度 ) SUBSTRING?? (?? expression?? ,?? start?? ,?? length?? )???? ? 參數(shù) ?? ?expression??? ?? ? 是字符串、二進(jìn)制字符串、 text 、 image 、列或包含列的表達(dá)式。不要使用包含聚合函數(shù)的表達(dá)式。 ?? ??? ?start?? ? 是一個(gè)整數(shù),指定子串的開始位置。 ?? ??? ?length??? ??? ? 是一個(gè)整數(shù),指定子串的長度(要返回的字符數(shù)或字節(jié)數(shù))。 ?? ??? ??? ?LEFT?? ? 返回從字符串左邊開始指定個(gè)數(shù)的字符。 ?? ??? ? 語法 ?? ?LEFT?? (?? character_expression?? ,?? integer_expression?? )???? ??? ? 參數(shù) ?? ?character_expression?? ??? ? 字符或二進(jìn)制數(shù)據(jù)表達(dá)式。 character_expression?? 可以是常量、變量或列。 character_expression?? 必須是可以隱式地轉(zhuǎn)換為 ?? varchar?? 的數(shù)據(jù)類型。否則,請使用 ?? CAST?? 函數(shù)顯式轉(zhuǎn)換 ?? character_expression 。 ?? ??? ?integer_expression??? ??? ? 是正整數(shù)。如果 ?? integer_expression?? 為負(fù),則返回空字符串。 ?? ??? ? 返回類型 ?? ?varchar?? ??? ?
比如 ? substring( 字段 , 開始位置 , 取多少長度 ) ?
left( 字段 , 取多少長度 ) SUBSTRING?? (?? expression?? ,?? start?? ,?? length?? )???? ? 參數(shù) ?? ?expression??? ?? ? 是字符串、二進(jìn)制字符串、 text 、 image 、列或包含列的表達(dá)式。不要使用包含聚合函數(shù)的表達(dá)式。 ?? ??? ?start?? ? 是一個(gè)整數(shù),指定子串的開始位置。 ?? ??? ?length??? ??? ? 是一個(gè)整數(shù),指定子串的長度(要返回的字符數(shù)或字節(jié)數(shù))。 ?? ??? ??? ?LEFT?? ? 返回從字符串左邊開始指定個(gè)數(shù)的字符。 ?? ??? ? 語法 ?? ?LEFT?? (?? character_expression?? ,?? integer_expression?? )???? ??? ? 參數(shù) ?? ?character_expression?? ??? ? 字符或二進(jìn)制數(shù)據(jù)表達(dá)式。 character_expression?? 可以是常量、變量或列。 character_expression?? 必須是可以隱式地轉(zhuǎn)換為 ?? varchar?? 的數(shù)據(jù)類型。否則,請使用 ?? CAST?? 函數(shù)顯式轉(zhuǎn)換 ?? character_expression 。 ?? ??? ?integer_expression??? ??? ? 是正整數(shù)。如果 ?? integer_expression?? 為負(fù),則返回空字符串。 ?? ??? ? 返回類型 ?? ?varchar?? ??? ?
總結(jié)
以上是生活随笔為你收集整理的sql中的iif语句详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【iOS开发】从小白到低水平开发者进厂实
- 下一篇: MongoDB的安装与可视化工具Stud