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
